Странное поведение при создании ссылки подменю
Я пытаюсь разработать плагин, который должен добавить две страницы в меню боковой панели панели мониторинга. Одна из них является основной категорией. Все в порядке, за исключением второго пункта подменю на странице настроек. После прочтения примерно такой же части кодекса и поиска в Интернете подобных проблем я не нашел решения.
Я что-то упускаю из виду? (первое подменю предназначено для создания дубликата целевой страницы, из курс)
Код
add_action('admin_menu', 'my_add_submenu');
function my_add_submenu(){
add_menu_page( 'Author Discussion', 'Discussion', 'manage_options', 'author_discuss', 'author_discuss_build_page', plugins_url( 'author-discussion/images/icon.png' ), 999 );
add_submenu_page( 'author_discuss', 'Author Discussion', 'Author Discussion', $menu_capability, 'author_discuss' );
add_submenu_page( 'author_discuss', 'Author Discussion Settings', 'Settings', 'manage_options', 'author_discuss_settings', 'author_discuss_settings_page' );
}
function author_discuss_build_page(){
//do something
}
function author_discuss_settings_page() {
//do something
}
Эффект
Одна вещь, которую я замечаю, когда я нажимаю на ссылку в боковой панели, она перенаправляется на:
- /wp-администратор/автор_дискусс_сеттинги
- вместо /wp-администратор/admin.php?страница=author_discuss_settings
Я чувствую, что упускаю что-то очевидное.
Что я пробовал?
Я последовал последнему примеру в Кодексе WordPress, расположенном здесь.
У меня есть попытался изменить действие с admin_menu
на admin_init
, чтобы посмотреть, изменит ли это результат. URL-адрес печатается, как и ожидалось, /wp-admin/admin.php?страница=author_discuss_settings, но выдает ошибку "У вас недостаточно разрешений".
1 answers
На той же странице в кодексе у вас есть это:
ПРИМЕЧАНИЕ: Если вы столкнулись с сообщением "У вас недостаточно разрешений для доступа к этой странице". на экране wp_die(), значит, вы подключились слишком рано.
Таким образом, это частично отвечает на ваш вопрос.
Вторая часть, следующий код должен работать:
add_action('admin_menu', 'my_add_submenu');
function my_add_submenu(){
add_menu_page( 'Parent', 'Parent', 'manage_options', 'author_discuss', 'author_parent' );
add_submenu_page( 'author_discuss', 'Author Discussion', 'Author Discussion', 'manage_options', 'author_discuss' );
add_submenu_page( 'author_discuss', 'Author Discussion Settings', 'Settings', 'manage_options', 'author_discuss_settings', 'author_discuss_settings_page' );
}
function author_parent() {
}
function author_discuss_settings_page() {
//do something
}
Проверьте свои функции и посмотрите, нет ли какой-нибудь опечатки.