WordPress fügt eine neue Seite zum Admin-Bereich hinzu

Lesezeit: 3 Minuten

Benutzeravatar von Manny Calavera
Manny Calavera

Ich habe mein Plugin bereits für WordPress entwickelt und kann es vom Administrator aus verwalten. Den Zugriff auf die Plugin-Datei habe ich mit übergeben add_submenu_page. Das Problem ist, dass das Plugin erweitert wird und ich eine andere Datei verwenden möchte, die mit der Hauptdatei verknüpft ist. Ich habe zum Beispiel second_page.php?id=3. Wenn ich versuche, auf diesen Link zuzugreifen, erhalte ich eine

Sie haben keine ausreichenden Berechtigungen, um auf diese Seite zuzugreifen.

Botschaft. Ich möchte diese Seite auch für die Verwendung mit diesem Skript “validieren” und weiß nicht wie. Ideen?

Benutzeravatar von Fletcher Moore
Fletcher Moore

Wenn Sie eine Seite mit hinzufügen add_submenu_page()sollte die URL etwa so lauten:

wp-admin/admin.php?page=<your_page_handle>

Ihre Seite wird tatsächlich von geladen admin.php (normalerweise). Sie können Ihren Links Parameter hinzufügen, indem Sie etwas wie anhängen &id=3 und lassen Sie dann Ihre Haupt-Plug-in-Seitenladelogik bestimmen, welche Datei basierend auf dem Parameter eingeschlossen werden soll.

Zum Beispiel

if (isset($_GET['id']) && ((int) $_GET['id']) == 3) {
  include 'second_page.php';
} else {
  include 'first_page.php';
}

Bearbeiten:

Ich habe einen Trick gefunden, der für Sie vielleicht einfacher ist, obwohl ich ihn nicht gründlich getestet habe. Angenommen, Sie haben zwei Seiten: my_one und my_two. Ruf einfach an add_submenu_page zweimal, und legen Sie die übergeordnete Seite der zweiten Seite als erste Seite fest. Dies führt dazu, dass WordPress keinen Link zur Navigationsleiste hinzufügt, aber Sie können trotzdem auf Ihre Seite zugreifen, indem Sie zu navigieren admin.php?page=my_two.

Beispiel:

    add_submenu_page( 
          'my_toplevel_link'   
        , 'Page Title'
        , 'Link Name'
        , 'administrator'
        , 'my_one' // here's the page handle for page one
        , 'my_one_callback'
    );
    add_submenu_page( 
          'my_one'  // set the parent to your first page and it wont appear
        , 'Page Title'
        , 'Link Name'  // unused
        , 'administrator'
        , 'my_two'
        , 'my_two_callback'
    );

  • Nun, ich weiß, wie man eine Seite wie page.php einbindet, wie wäre es mit page.php?id=3 ? Das ändert alles und ich weiß nicht, wie ich das machen soll.

    – Manny Calavera

    12. Mai 2010 um 22:42 Uhr


  • 5 Jahre später, und diese Antwort ist immer noch nützlich. Aber @FletcherMoore weißt du, wie ich es so machen kann my_toplevel_link bleibt weiterhin als ausgewählt hauptsächlich Speisekarte?

    – Sylvan D. Ash

    26. Juni 2015 um 8:56 Uhr

  • Wow. Es tut uns leid. Ich erinnere mich nicht einmal an WordPress oder das, was ich hier geschrieben habe. Es ist zu lange her.

    – Fletcher Moore

    26. Juni 2015 um 23:33 Uhr

Benutzeravatar von Stephen R
Stefan R

Da WP URLs wie nativ unterstützt wp-admin/admin.php?page=<your_page_handle> Sie können Unterseiten mit etwas wie:

wp-admin/admin.php?page=yourpage

wp-admin/admin.php?page=yourpage&sub=2

wp-admin/admin.php?page=yourpage&sub=3

Dann im Code, der behandelt wp-admin/admin.php?page=<your_page_handle> Sie sehen sich einfach $_GET an und rufen je nach Bedarf die Hauptseite oder eine Unterseite auf.

Ich habe definitiv Plugins gesehen, bei denen die Admin-Seite oben eine kleine Reihe von Links hat, die die verschiedenen Unterseiten verlinken.

1390680cookie-checkWordPress fügt eine neue Seite zum Admin-Bereich hinzu

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy