2010-05-12 7 views
8

Ich habe bereits mein Plugin für WordPress entwickelt und ich kann es von admin verwalten. Ich habe den Zugriff auf die Plugin-Datei mit add_submenu_page übergeben. Das Problem ist, dass das Plugin erweitert wird und ich eine andere Datei verwenden möchte, die aus der Hauptdatei verknüpft ist. Zum Beispiel habe ich second_page.php?id=3. Wenn ich versuche, auf diesen Link zuzugreifen, erhalte ich eineWordPress fügen Sie eine neue Seite zu Admin-Abschnitt

Sie sind nicht berechtigt, auf diese Seite zuzugreifen.

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

Antwort

3

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

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 wp-admin/admin.php?page=<your_page_handle> behandelt, schauen Sie sich einfach das $ _GET an und ziehen Sie die Hauptseite oder eine Unterseite nach Bedarf hoch.

Ich habe definitiv Plugins gesehen, wo die Admin-Seite eine kleine Reihe von Links über die Oberseite hat, die die verschiedenen Unterseiten verbindet.

5

Wenn Sie eine Seite mit add_submenu_page() hinzufügen, sollte die URL so etwas wie:

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

Ihre Seite tatsächlich von admin.php (in der Regel) geladen wird. Sie können Parameter zu Ihren Links hinzufügen, indem Sie etwas wie &id=3 anhängen und dann lassen Sie Ihre Hauptplugin-Ladelogik bestimmen, welche Datei basierend auf dem Parameter enthalten ist.

Zum Beispiel

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

Edit:

ich einen Trick gefunden, die für Sie möglicherweise einfacher, obwohl ich nicht gründlich getestet haben. Nehmen wir an, Sie haben zwei Seiten: my_one und my_two. Rufen Sie einfach zweimal add_submenu_page auf und legen Sie das übergeordnete Element der zweiten Seite als erste Seite fest. Dies führt dazu, dass Wordpress keinen Link zur Navigationsleiste hinzufügt, aber Sie können weiterhin auf Ihre Seite zugreifen, indem Sie zu admin.php?page=my_two navigieren.

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' 
    ); 
+0

Nun, ich weiß, wie man eine Seite wie page.php, wie wäre es mit page.php? Id = 3? Das ändert alles und ich weiß nicht wie. –

+0

Ich habe eine andere Methode hinzugefügt, die möglicherweise für Sie funktioniert. –

+0

5 Jahre später, und diese Antwort ist immer noch nützlich. Wie auch immer, @FletcherMoore weißt du, wie ich es so einrichten kann, dass 'my_topelevel_link' immer noch als ** Main ** Menü ausgewählt ist? –

Verwandte Themen