Intereting Posts
Как установить значение по умолчанию в качестве сохраненного значения после сохранения формы виджета? Добавить кнопку для переключения кухонной раковины Перемещение сайта WordPress в новый домен – импорт базы данных URL Rewrite не работает для вложенных страниц Блог перенаправляет на страницу контактов Post Pagination не работает с WP-Query Что означает Multisite в WordPress? Есть ли способ проверить вход пользователя и отправить его для входа? Разрыв результатов цикла Плагин: невозможно сохранить параметр выравнивания изображения для отображения в виджете в боковой панели Показывать пользователей списка на основе двух настраиваемых значений полей Как изменить статус сообщения в режиме ожидания? Добавить пользовательский атрибут изображения Лучший способ добавить пользовательский javascript, используя jquery для дочерней темы Сортировка почтовых категорий по ID

Как предотвратить появление родительской страницы администратора в качестве дочерней страницы администратора

Я использую этот код:

add_menu_page($page_title, $menu_title, $this->capability, $menu_slug, $function); 

Что добавляет страницу администратора верхнего уровня. Когда я добавляю:

 add_submenu_page( $menu_slug, 'sub menu 1', 'sub menu 1', $this->capability, $menu_slug . '_sub_menu_page_1', $function ); 

Я получаю не только желаемую дочернюю страницу, но также и родительскую страницу, чтобы стать дочерней страницей.

Solutions Collecting From Web of "Как предотвратить появление родительской страницы администратора в качестве дочерней страницы администратора"

Если я не пойму на вопрос, это должно сделать трюк:

 add_action('admin_menu', 'add_menu_pages'); function add_menu_pages() { add_menu_page('Menu Title', 'Menu Title', 10, 'main_menu', 'submenu_1_callback'); add_submenu_page('main_menu', 'Sub Menu Title 1', 'Sub Menu Title 1', 10, 'main_menu' , 'submenu_1_callback'); add_submenu_page('main_menu', 'Sub Menu Title 2', 'Sub Menu Title 2', 10, 'sub_menu' , 'submenu_2_callback'); } function submenu_1_callback() { echo "<h2>" . __( 'Toplevel & Sublevel 1', 'menu-test' ) . "</h2>"; } function submenu_2_callback() { echo "<h2>" . __( 'Sublevel 2', 'menu-test' ) . "</h2>"; } 

РЕДАКТИРОВАТЬ:

Вот самый простой способ скрыть первый элемент подменю.

1) Создайте admin.css и переместите его в / [ваш шаблон dir] / css /

2) Добавьте это в свой admin.css:

 #adminmenu li#toplevel_page_main_menu li.wp-first-item { display: none !important; } 

3) Добавьте следующий код в свои функции. Php

 add_action('admin_enqueue_scripts', 'custom_admin_css'); function custom_admin_css() { wp_enqueue_style( 'admin_css', (get_template_directory_uri() . '/css/admin.css'), false, '1.0.0' ); } 

используйте remove_submenu_page () следующим образом:

 add_action('admin_menu','your_add_menu_function'); function your_add_menu_function() { add_menu_page('Menu Page Title','Menu Name','edit_theme_options/others caps...','parent_menu_slug',...); add_submenu_page('parent_menu_slug','Menu Page Title','Menu Name','...caps...','sub_menu_slug',...); add_submenu_page(...); remove_submenu_page('parent_menu_slug','parent_menu_slug'); // pay a attention } 

ok, parent_menu ссылается на первую страницу подменю .

Стандартный трюк состоит в том, чтобы повторить страницу главного меню как страницу подменю, без названия меню (третий параметр).

 function add_menu_pages() { add_menu_page('Page Title', 'Menu Title', 'edit_posts', 'main_menu', 'menu_1_callback'); add_submenu_page('main_menu', 'Page Title', '', 'edit_posts', 'main_menu' , 'menu_1_callback'); add_submenu_page('main_menu', 'Page Title 1', 'Submenu Title 1', 'edit_posts', 'main_menu' , 'submenu_1_callback'); add_submenu_page('main_menu', 'Page Title 2', 'Submenu Title 2', 'edit_posts', 'sub_menu' , 'submenu_2_callback'); } 

Это даст вам

 Menu Title Submenu Title 1 Submenu Title 2 

Есть ли причина, по которой вы не просто используете remove_submenu_page() применительно к удалению добавляемой страницы, а затем просто создаете (или перестраиваете, в зависимости от обстоятельств) структуру вашего меню?

Но на самом деле это было бы взломом, и необходимость использования взлома свидетельствует о том, что что-то не так, что нужно исправить. Для этого нам, вероятно, понадобится фактический код.

add_action ('admin_menu', 'my_admin_menu');

function my_admin_menu () {add_menu_page ('Optins', 'Параметры темы', 'manage_options', 'options', 'options_admin_page', 'dashicons-admin-generic', 6); add_submenu_page ('options', 'First Sub Options', 'First Option', 'manage_options', 'options', 'options_admin_sub_page_first'); add_submenu_page ('options', 'Second Sub Options', 'Second Option', 'manage_options', 'second-option', 'options_admin_sub_page_second'); } function options_admin_page () {

}

function options_admin_sub_page_first () {

}

function options_admin_sub_page_second () {

}

Теперь вы получите что-то вроде этого, просто :)