Lorsque vous ajoutez une page avec add_submenu_page()
, l'URL doit être quelque chose comme:
wp-admin/admin.php?page=<your_page_handle>
Votre page est effectivement chargée de admin.php
(en général). Vous pouvez ajouter des paramètres à vos liens en ajoutant quelque chose comme &id=3
, puis demandez à votre logique de chargement de page de plugin principal de déterminer quel fichier inclure en fonction du paramètre.
Par exemple
if (isset($_GET['id']) && ((int) $_GET['id']) == 3) {
include 'second_page.php';
} else {
include 'first_page.php';
}
Edit:
J'ai trouvé une astuce qui peut être plus facile pour vous, mais je ne l'ai pas testé à fond il. Disons que vous avez deux pages: my_one
et my_two
. Appelez simplement add_submenu_page
deux fois et définissez le parent de la deuxième page comme première page. Cela entraînera Wordpress à ne pas ajouter un lien vers la barre de navigation, mais vous pouvez toujours accéder à votre page en accédant à admin.php?page=my_two
.
Exemple:
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'
);
Eh bien, je sais comment inclure une page comme page.php, qu'en est-il de page.php? Id = 3? Cela change tout et je ne sais pas comment le faire. –
J'ai ajouté une méthode différente qui peut fonctionner pour vous. –
5 ans plus tard, et cette réponse est toujours utile. Cependant @FletcherMoore savez-vous comment je peux faire en sorte que 'my_toplevel_link' reste toujours sélectionné comme le menu ** main **? –