Inverser l’ordre des menus dans wordpress

Publié par Jean-Michel le

J’ai une question très rapide, et je présume simple, mais comme il est tard dans la journée, je n’arrive pas à la résoudre…

J’ai un menu wordpress flottant vers la droite. Pour corriger l’ordre, j’ai besoin d’afficher le menu à l’envers. J’utilise cette fonction pour ce faire, et je la place juste avant que le menu ne soit appelé dans l’en-tête :

<?php add_filter( 'wp_nav_menu_objects', create_function( '$menu', 'return array_reverse( $menu );' ) ); ?>

Comme je ne veux inverser qu’un seul menu, je dois mettre un remove_filter après le menu… et je n’arrive pas à le comprendre… ou peut-être que la fonction add_filter est erronée en premier lieu.

Des idées? Merci d’avance!

Solution n°1 trouvée

L’API du plugin WordPress n’offre pas un accès simple aux fonctions ou fermetures anonymes.

Utilisez plutôt une fonction normale comme rappel :

add_filter( 'wp_nav_menu_objects', 'reverse_menu' );

function reverse_menu( $menu ) {
    remove_filter( current_filter(), __FUNCTION__ );
    return array_reverse( $menu );
}

Ne jamais utiliser create_function(). Il est lent, difficile à déboguer et ne fonctionne pas bien avec les opcaches.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *