Примечание. Это решение не устанавливает автоматически текущее меню и пункт подменю. Если вы хотите выделить определенное меню как текущее при просмотре скрытой страницы, см. мой другой ответ .
Из ответов, которые были до меня, вы можете видеть, что есть много способов сделать это. Тем не менее, есть и другой способ, который я считаю лучшим.
Загрузка страницы по-разному в зависимости от значения запроса $_GET
. Var - один из вариантов, но он может не соответствовать тому, что ищут некоторые люди.
Предложения относительно add_submenu_page()
находятся на правильном пути, но у каждого из предыдущих предложений есть проблемы. Установка $menu_title
на null
не препятствует отображению пункта меню, он просто делает его таким, чтобы в ссылке не было текста. Ссылка по-прежнему занимает некоторое место в меню, поэтому выглядит забавно. Установка $parent_slug
на null
не имеет этой проблемы, но я заметил, что HTML title
страницы не отображает текст $page_title
.
Мое решение состояло в том, чтобы установить $parent_slug
на поддельное меню, например 'i_dont_exist'
. Пункт меню не будет отображаться, и при просмотре экрана администратора заголовок страницы будет заполнен правильно.
add_submenu_page(
'_doesnt_exist'
,__( 'Page title', 'textdomain' )
,''
,'manage_options'
,'menu_slug'
,'display_my_menu'
);