Я уже разработал свой плагин для WordPress, и я могу управлять им от администратора. Я передал доступ к сменному использованию файла add_submenu_page
. Проблема состоит в том, что плагин расширяется, и я хочу использовать другой файл, который связан из основного файла. Например, я имею second_page.php?id=3
. Когда я пытаюсь получить доступ к этой ссылке, я получаю a
У Вас нет достаточных полномочий получить доступ к этой странице.
сообщение. Я хочу "проверить" эту страницу также для использования с этим сценарием, и я не знаю как. Идеи?
Поскольку WP изначально поддерживает такие URL-адреса, как wp-admin / admin.php? Page =
, вы можете делать подстраницы с чем-нибудь например:
wp-admin / admin.php? page = yourpage
wp-admin / admin.php? page = yourpage & sub = 2
wp-admin / admin.php? page = yourpage & sub = 3
Затем в коде, который обрабатывает wp-admin / admin.php? Page =
, вы просто смотрите на $ _GET и вытаскиваете главную страницу или подстраницу по мере необходимости.
Я определенно видел плагины, в которых на странице администратора есть небольшой ряд ссылок вверху, связывающих различные подстраницы.
Когда вы добавляете страницу с помощью add_submenu_page ()
, URL-адрес должен быть примерно таким:
wp-admin / admin. php? page =
Ваша страница фактически загружается из admin.php
(обычно). Вы можете добавить параметры к своим ссылкам, добавив что-то вроде & id = 3
, а затем ваша основная логика загрузки страницы плагина определит, какой файл включить на основе параметра.
Например
if (isset($_GET['id']) && ((int) $_GET['id']) == 3) {
include 'second_page.php';
} else {
include 'first_page.php';
}
Редактировать:
Я нашел уловку, которая может быть проще для вас, хотя я еще не тестировал ее полностью. Допустим, у вас есть две страницы: 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'
);