web-dev-qa-db-fra.com

Est-il possible d'ajouter un filtre pour la sortie des éléments de menu de navigation dans admin?

Je souhaite supprimer certains champs de saisie de l'écran d'administration pour les menus de navigation correspondant à des positions de menu spécifiques. J'ai utilisé des filtres pour filtrer la sortie frontale, mais pas pour la sortie admin. Y a-t-il un filtre disponible à cet effet?

Par exemple, je souhaite supprimer l'option permettant d'ajouter un attribut title aux éléments de menu, uniquement si le menu est utilisé dans 'position-x'.

Des filtres tels que nav_menu_link_attributes et wp_nav_menu_args semblent tous filtrer la sortie front-end.

2
tommyf

Ces champs sont créés dans Walker_Nav_Menu_Edit::start_el(). Pour les modifier ou les supprimer, créez un exemple personnalisé de promeneur ( ) pour un autre randonneur ) qui étend Walker_Nav_Menu_Edit et utilise d’autres champs ou moins.

Puis filtrez wp_edit_nav_menu_walker et renvoie le nom de la classe de votre marcheur.

Pseudo-code:

class Walker_Nav_Menu_Edit_Simple extends Walker_Nav_Menu_Edit {
    public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) 
    { /* Magic here. */}
}

add_filter( 'wp_edit_nav_menu_walker', function() {
    return 'Walker_Nav_Menu_Edit_Simple';
});
3
fuxia