Quand j'utilise add_menu_page
& add_submenu_page
pour ajouter des éléments de 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' );
Je vais avoir quelque chose comme
Est-il possible de le créer de telle sorte qu'il devienne
En d'autres termes, les formulaires seront liés aux demandes d'emploi et je ne veux pas du sous-menu supplémentaire "Formulaires"
Bonjour @JM au travail:
Oui, malheureusement, la page de sous-menu est ajoutée pour chaque page de menu. Ce serait bien s'il y avait une option mais hélas, il n'y en a pas actuellement .
Pour supprimer l'option de page de sous-menu dans WordPress 3.1 ou utilisez remove_submenu_page()
avec un code comme celui-ci dans le fichier functions.php
de votre thème ou dans le fichier .php
d'un plug-in que vous écrivez peut-être:
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');
}
Si vous utilisez toujours WordPress 3.0, vous devez unset()
un élément de la variable globale $submenu
comme ceci:
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]);
}
Je devais add_submenu_page, puis le supprimer (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');
Je suggérerais en conservant l’élément de menu supplémentaire, car c’est la façon dont fonctionnent tous les autres menus WP. (Je sais que ce n'est pas ce que vous avez demandé! ...) Les autres menus de niveau supérieur fonctionnent de manière différente: ils portent des étiquettes différentes pour le gros titre du menu et le duplicata en dessous (par exemple, "Utilisateurs", "Tous les utilisateurs"; "Outils", "Outils disponibles"). Je pense que c'est bien de s'en tenir au même paradigme, alors je renomme habituellement le premier élément de sous-menu comme ceci:
<?php
add_menu_page( 'Plugin Name', 'Plugin Name', 'read', 'plugin-slug', $callback );
add_submenu_page( 'plugin-slug', 'Plugin Overview', 'Overview', 'read', 'plugin-slug', $callback );