add_menu_page () с другим именем для первого элемента подменю

85

В add_menu_pageдокументации сказано, что передается заголовок меню как второй параметр:

add_menu_page('Page Title', 'Menu Title', ...);

При добавлении дополнительных страниц через add_submenu_pageглавную страницу становится первой записью в подменю:

введите описание изображения здесь


Однако я хочу, чтобы первый элемент в списке имел другое имя (но все еще указывал на ту же страницу), как это делает сам Wordpress:

введите описание изображения здесь


Как я мог сделать это в моем плагине?

мегахиту
источник
Я нашел очень полезный блог для той же цели tekina.info/add-menus-submenus-wordpress-admin-panel
Аникет Сингх,

Ответы:

113

Вы можете сделать 'slug' для страницы подменю таким же, как на странице верхнего уровня, и они будут указывать на то же место:

add_action('admin_menu', 'my_menu_pages');
function my_menu_pages(){
    add_menu_page('My Page Title', 'My Menu Title', 'manage_options', 'my-menu', 'my_menu_output' );
    add_submenu_page('my-menu', 'Submenu Page Title', 'Whatever You Want', 'manage_options', 'my-menu' );
    add_submenu_page('my-menu', 'Submenu Page Title2', 'Whatever You Want2', 'manage_options', 'my-menu2' );
}

Например

введите описание изображения здесь

Майкл Льюис
источник
Это приведет к дублированию записей, так как Wordpress автоматически создает страницу подменю для главной страницы.
MegaHit
4
Я помню, как просматривал основной код на прошлой неделе и наткнулся на заметку, в которой говорилось что-то вроде: «Добавить элемент подменю по умолчанию, ЕСЛИ ПОЛЬЗОВАТЕЛЬ НЕ УЖЕ». Он проверяет, есть ли элемент подменю, указывающий на элемент верхнего уровня. Если есть, это не добавляет по умолчанию.
Майкл Льюис,
Я хочу, чтобы при создании пользовательского меню я хотел отображать некоторые таблицы и данные, так как на других вкладках отображается ссылка на учебник, или приветствуется некоторая помощь по функциям
Aitazaz Khan
Именно то, что я искал. Спасибо: P
Роб DA
-3
add_submenu_page(
        'tut_theme_settings',       // parent slug
        'Front Page Elements 2',    // page title
        'Front Page 2',             // menu title
        'manage_options',           // capability
        'tut_theme_settings2',      // slug
        'theme_front_page_settings' // callback
    ); 

если другое имя первого подменю создает один и тот же фрагмент родительского и первого дочернего элемента и вызывает одну и ту же функцию

Умеш Малия
источник
2
Чем он отличается от принятого ответа? И к какому действию это должно быть привязано.
Бравокейл
-4

Просто добавьте это:

$submenu['my-menu'][0][0] = 'My New Menu Title';

В целях отладки вы можете print_r($menu)проверить все меню WP.

Laurent
источник
7
Взломать взломать. Используйте API!
Ричард Суини