Видалити повторне головне - підменю адміністратора?


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

Велике спасибі ........... :)
Ridwan Pujakesuma

1

Мені довелося додати_дрібну сторінку, а потім видалити її (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

Призначте перший спункт підменю, подібний до батьківського меню. У вашому випадку замініть "завдання-завдання" на слупку головного меню "форми".

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.