Удалить дубликаты главного - подменю в админке?

11

Когда я использую add_menu_page& add_submenu_pageдля добавления пунктов меню,

add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'job-applications', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );

Я получу что-то вроде

  • формы
    • формы
    • Заявки на работу
    • Цитата Запросы
    • контакты

Можно ли создать его таким, чтобы он стал

  • формы
    • Заявки на работу
    • Цитата Запросы
    • контакты

Другими словами, формы будут ссылаться на вакансии, и мне не нужен дополнительный пункт подменю «Формы».

JM на работе
источник

Ответы:

10

Привет @JM на работе:

Да, к сожалению, страница подменю добавляется для каждой страницы меню. Было бы неплохо, если бы был вариант, но, увы, сейчас его нет .

Чтобы удалить опцию страницы подменю в WordPress 3.1 или remove_submenu_page()лучше использовать с таким кодом в functions.phpфайле вашей темы или в .phpфайле плагина, вы можете написать:

add_action( 'admin_menu', 'yoursite_admin_menu' );
function yoursite_admin_menu() {
  add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'job-applications', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
  add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );
  remove_submenu_page('forms','forms');
}

Если вы все еще используете WordPress 3.0, вы должны unset()использовать элемент глобальной переменной, $submenuнапример:

add_action( 'admin_menu', 'yoursite_admin_menu' );
function yoursite_admin_menu() {
  add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'job-applications', 'forms_job_menupage_cb' );
  add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
  add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );
  unset($GLOBALS['submenu']['forms'][0]);
}
MikeSchinkel
источник
Большое спасибо ........... :)
Ридван Пуджакесума
1

Мне пришлось добавить add_submenu_page, а затем удалить его (wp 4.0.1)

add_menu_page( 'Admin Tools', 'Admin Tools', 'manage_options','parent', '__return_null','', "70.23423" );
    // this 'hides' the extra.  actually, just makes the text nothing: ''  
    add_submenu_page( 'parent', '',     '', 'manage_options',   'parent',   '__return_null' );
    //ah, but this removes it completely (you need to add it, then remove it :/     
    remove_submenu_page('parent','parent');
Дуг Кэссиди
источник
1

Я бы посоветовал оставить дополнительный пункт меню, потому что так работают все остальные меню WP. (Я знаю, что это не то, что вы спросили! ...) То, как работают другие меню верхнего уровня, заключается в том, что они имеют разные метки для заголовка большого меню и дубликат под ним (например, «Пользователи», «Все пользователи»; «Инструменты», «Доступные инструменты»). Я думаю, что хорошо придерживаться той же парадигмы, поэтому я обычно переименовываю первый элемент подменю следующим образом:

<?php
add_menu_page( 'Plugin Name', 'Plugin Name', 'read', 'plugin-slug', $callback );
add_submenu_page( 'plugin-slug', 'Plugin Overview', 'Overview', 'read', 'plugin-slug', $callback );
Сэм Уилсон
источник
1

Назначьте первый слаг подменю, аналогичный родительскому меню. В вашем случае замените 'job-application' на кусок главного меню 'формы'.

add_menu_page( 'Forms', 'Forms', 'administrator', 'forms', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Job Applications', 'Job Applications', 'administrator', 'forms', 'forms_job_menupage_cb' );
add_submenu_page( 'forms', 'Quote Requests', 'Quote Requests', 'administrator', 'quote-req', 'forms_req_menupage_cb' );
add_submenu_page( 'forms', 'Contact', 'Contact', 'administrator', 'contact', 'forms_contact_menupage_cb' );
Евгений З.
источник