Intereting Posts
Исключить все страницы, кроме нескольких? Как показать базу изображений по категории Подключиться к обновлению WordPress? Как проверить, находится ли пользователь в определенной роли? нужен wp-конструктор или тема, реагирующая на соотношение сторон или ориентацию экрана Дилемма поиска FoRM || Форма поиска Templating Ежедневные уведомления о неудачных попытках входа в систему для несуществующего администратора get_posts игнорирует «категорию» и отображает все сообщения Получите пользователей с разными ролями и функцией вызова для каждого из них (user_meta) Сохранение пользовательских опций WordPress? Как заказать отдельные результаты пользовательского поиска Попытка сохранить пользовательский тип сообщения от внешнего интерфейса частично работающего Персонализированная галерея, каковы мои варианты? Добавить вложение изображения для публикации через кодирование? Добавление категории / тегов / таксономии Поддержка изображений / мультимедиа

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

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

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 () {

}

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