При добавлении страницы с add_submenu_page()
, URL-адрес должен быть что-то вроде:
wp-admin/admin.php?page=<your_page_handle>
Ваша страница действительно загружается из admin.php
(обычно). Вы можете добавлять параметры к своим ссылкам, добавляя что-то вроде &id=3
, а затем логику загрузки основной плагины определите, какой файл следует включить на основе этого параметра.
Например
if (isset($_GET['id']) && ((int) $_GET['id']) == 3) {
include 'second_page.php';
} else {
include 'first_page.php';
}
Edit:
Я нашел трюк, который может быть проще для вас, хотя я тщательно не проверял. Предположим, что у вас есть две страницы: my_one
и my_two
. Просто позвоните add_submenu_page
дважды и установите родительский номер второй страницы как первую страницу. Это заставит Wordpress не добавлять ссылку на панель навигации, но вы все равно можете получить доступ к своей странице, перейдя по ссылке admin.php?page=my_two
.
Пример:
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'
);
Ну, я знаю, как включить одну страницу, такую как page.php, как насчет page.php? Id = 3? Это меняет все, и я не знаю, как это сделать. –
Я добавил другой метод, который может сработать для вас. –
5 лет спустя, и этот ответ по-прежнему полезен. Однако @FletcherMoore вы знаете, как я могу сделать это так, чтобы 'my_toplevel_link' по-прежнему оставался выбранным как ** основное ** меню? –