Usunąć zduplikowane główne - podmenu w adminie?

11

Kiedy używam add_menu_page& add_submenu_pagedo dodawania pozycji 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' );

Dostanę coś takiego

  • Formularze
    • Formularze
    • Podania o pracę
    • Zapytania ofertowe
    • Łączność

Czy można go stworzyć tak, aby stał się

  • Formularze
    • Podania o pracę
    • Zapytania ofertowe
    • Łączność

Innymi słowy, Formularze będą prowadziły do ​​Podań o pracę i nie chcę dodatkowego elementu podmenu Formularze

JM w pracy
źródło

Odpowiedzi:

10

Cześć @JM w pracy:

Tak, niestety strona podmenu jest dodawana do każdej strony menu. Byłoby miło, gdyby istniała opcja, ale niestety, obecnie nie ma .

Aby usunąć opcję strony z podmenu w WordPress 3.1 lub użyć tego remove_submenu_page()kodu w functions.phppliku motywu lub w .phpwtyczce, którą możesz pisać:

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

Jeśli nadal używasz WordPress 3.0, musisz przejść do unset()elementu zmiennej globalnej w $submenunastępujący sposób:

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
źródło
Wielkie dzięki ........... :)
Ridwan Pujakesuma
1

Musiałem dodać stronę podmenu, a następnie ją usunąć (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');
Doug Cassidy
źródło
1

Proponuję zachować dodatkowy element menu, ponieważ tak działają wszystkie inne menu WP. (Wiem, że nie o to pytałeś!). Inne menu najwyższego poziomu działają w ten sposób, że mają różne etykiety dla tytułu dużego menu i duplikatu pod nim (np. „Użytkownicy”, „Wszyscy użytkownicy”; „Narzędzia”, „Dostępne narzędzia”). Myślę, że dobrze jest trzymać się tego samego paradygmatu, dlatego zwykle zmieniam nazwę pierwszego elementu podmenu w ten sposób:

<?php
add_menu_page( 'Plugin Name', 'Plugin Name', 'read', 'plugin-slug', $callback );
add_submenu_page( 'plugin-slug', 'Plugin Overview', 'Overview', 'read', 'plugin-slug', $callback );
Sam Wilson
źródło
1

Przypisz pierwszy ślimak podmenu podobny do menu nadrzędnego. W twoim przypadku zastąp „podania o pracę” informacją o formularzu głównego menu.

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' );
Evgeniy Z.
źródło