En utilisant le formulaire jQuery suivant, je peux centrer dynamicment un logo au milieu d’un menu wordpress, mais lorsque j’ajoute un sous-menu à la navigation principale, le logo disparaît. Comment pourrais-je réécrire ceci pour réduire les sous-menus?
JQuery:
var position = $("ul#main_nav li").length-2; var i = 0; $('ul#main_nav li').each(function() { if(i == position/2) { $(this).after('<img src="https://stackoverflow.com/questions/39080069/wp-add-logo-into-center-of-menu-whist-ignoring-sub-menus//img/logo.png" alt="Logo" class="logo-img">'); } i++; });
HTML:
var position = $("ul#main_nav > li").length-2; var i = 0; $('ul#main_nav li').each(function() { if(i == position/2) { $(this).after(''); } i++; }); /* Try this */
Si, par hasard, quelqu’un d’autre découvre ce problème, voici la solution.
var position = $("ul#main_nav li.menu-item-object-page").length-2; var i = 0; $('ul#main_nav li.menu-item-object-page).each(function() { if(i == position/2) { $(this).after(''); } i++; });
WordPress atsortingbue aux éléments de liste de navigation de premier niveau la classe .menu-item-object-page
mais ne l’applique pas aux éléments de sous-menu. Il est donc un peu plus précis de définir les éléments à cibler et d’obtenir le résultat souhaité.