J'ai créé un gestionnaire de menu personnalisé pour le back-end, triant le par glisser-déposer en fonction de Ordre des pages CMS .
Le problème maintenant est qu'il semble qu'il ne soit pas possible de trier wp_nav_menu autrement que par défaut, cela peut-il être vraiment vrai?
Lorsque vous accédez à Apparence -> Menus et modifiez le menu de commande, l’ordre menu_order de chaque élément de menu est mis à jour.
Pour modifier le paramètre orderby dans la requête qui affiche le menu, vous pouvez utiliser pre_get_posts pour le modifier. Exemple:
add_action( 'pre_get_posts', 'wpse_sort_nav' );
function wpse_sort_nav( $query ) {
if ( $query->is_main_query() && get_query_var( 'post_type' ) == 'nav_menu_item' )
$query->set( 'orderby', 'ID' );
}
ID et menu_order sont vos seules options réelles pour trier à l'aide de la table de publication par défaut. Il n'y a pas de titre et le post_name est le même que l'ID.
Vous pouvez ajouter des paramètres supplémentaires au filtre pre_get_posts en utilisant les métadonnées stockées avec chaque nav_menu_item.
Métadonnées du menu de navigation:
_menu_item_menu_item_parent
_ menu_item_type
_ menu_item_object_id
_ menu_item_object
_ menu_item_target
_ menu_item_classes _menu_item_xfn
_ menu_item_url