Intereting Posts
Как заставить администратора WP распознать только что созданную дочернюю тему? Как установить условия для определения подсайта и других критериев? Контактный формуляр 7: входы электронной почты по электронной почте или создание поля только для чтения Есть ли админ-крючок, который позволит мне читать переменную GET, пока не станет слишком поздно устанавливать заголовок Location Каковы действительные сроки использования current_user_can () и связанных с ним функций? Как использовать функцию WP switchEditors.switchto (this) JS в вашем собственном скрипте? Отображать контент на основе пользовательского значения поля как мы можем получить список пользователей по роли в WordPress Подписаться2 с выбором категорий? Admin wp_ajax hook возвращает 0 Показаны должности на сегодня и в будущем Sublime Video: плейлист, который получает все прикрепленные видео Редактирование страниц дает ошибку 404 после обновления WordPress в панели администратора WordPress запускает 404 на странице 2 для пользовательских поисковых запросов Вопрос о add_image_size ()

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

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

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

}

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