Lorsque vous visitez wp-admin/nav-menus.php
et qu’il n’ya pas de menu, vous obtenez un ensemble de métaboxes que vous ne pouvez pas utiliser. La seule chose qu'ils font est de détourner l'attention de la boîte de dialogue Créer un menu .
Je veux cacher ces cases jusqu'à ce qu'il y ait un menu.
Comment puis je faire ça?
wp-admin/nav-menus.php
contient deux variables globales importantes:
$nav_menus
est un tableau de tous les menus disponibles, rempli avec wp_get_nav_menus()
.$wp_meta_boxes['nav-menus']
est un tableau de toutes les métaboxes disponibles pour cet écran.Nous pouvons nous connecter à admin_head-nav-menus.php
, une action appelée après la configuration de la première variable, et modifier la seconde variable:
add_action( 'admin_head-nav-menus.php', 't5_hide_dead_menu_metaboxes' );
/**
* Remove metaboxes for menu items when no menu exists.
*
* @wp-hook admin_head-nav-menus.php
* @return void
*/
function t5_hide_dead_menu_metaboxes()
{
empty ( $GLOBALS['nav_menus'] )
and $GLOBALS['wp_meta_boxes']['nav-menus'] = array ();
}
Télécharger en tant que le plugin T5 Masquer les métaboxes du menu mort depuis GitHub.
Informations complémentaires:
Après avoir supprimé les boîtes de méta, l’écran est un peu étrange. Nous pourrions changer un peu le crochet initial et ajouter quelques styles pour le rendre meilleur. Donc, notre crochet pourrait être:
/**
* Remove metaboxes for menu items when no menu exists.
*
* @wp-hook admin_head-nav-menus.php
* @return void
*/
function t5_hide_dead_menu_metaboxes()
{
if ( empty( $GLOBALS['nav_menus'] ) ) {
$GLOBALS['wp_meta_boxes']['nav-menus'] = array ();
echo '<style> #nav-menus-frame { margin-left: 0 !important; padding-top: 20px; } </style>';
}
}
Ensuite, l'écran aura l'air plus naturel: