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


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' );

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

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

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

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

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

Ответы:


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]);
}

Большое спасибо ........... :)
Ридван Пуджакесума

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' );
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.