web-dev-qa-db-fra.com

Menus personnalisés: problème de surbrillance dynamique avec lien home personnalisé

J'implémente actuellement wp_nav_menu - tout s'est bien passé, à l'exception de la mise en surbrillance dynamique. Le code de menu ressemble à ceci (quand home, qui est un lien personnalisé, est sélectionné):

<div class="menu-header">
<ul class="menu" id="menu-main-nav">
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-126" id="menu-item-126"><a href="path.to.link">Home</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-122" id="menu-item-122"><a href="path.to.link">Information</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-123" id="menu-item-123"><a href="path.to.link">Contact</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-124" id="menu-item-124"><a href="path.to.link">About</a></li>
</ul>
</div>

Lorsqu'une page autre que home (qui est un "lien personnalisé") est sélectionnée, ceci est écrit:

<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-65 current_page_item menu-item-122" id="menu-item-122"><a href="path.to.link">Information</a></li>

Comme vous pouvez le constater, cela inclut un style actif, "élément de menu actuel", dans lequel le lien personnalisé écrit uniquement "élément de menu type d'élément de menu personnalisé" élément de menu d'objet personnalisé "

Ma question est la suivante: y a-t-il moyen d'ajouter un style d'élément sélectionné pour les liens personnalisés dans les menus wp3?

1
toomanyairmiles

J'ai réalisé cela avec un peu de jQuery:

$("#sidebar ul li").each(function () {
     if ($(this).find("a").attr("href") == window.location.href) {
         $(this).addClass("current-menu-item");
     }
});

(Ma navigation est dans une div avec l'id 'sidebar', vous devrez changer le premier sélecteur).

Il vérifie si la href des liens est la même que l'URL actuelle et, le cas échéant, ajoute "élément de menu actuel". Vous pouvez ensuite styler les liens actifs avec la classe .current-menu-style.

0
Shaun

Une meilleure approche consisterait à ajouter une page "Accueil" aux arguments wp_page_menu() afin de pouvoir ajouter un lien vers la page "Accueil".

Premièrement, ajoutez ce filtre à functions.php pour afficher le lien de base:

function mytheme_filter_page_menu_args( $args ) {
    $args['show_home'] = true;
    return $args;
}
add_filter( 'wp_page_menu_args', 'mytheme_filter_page_menu_args' );

Maintenant, dans Dashboard -> Appearance -> Menus, vous verrez un lien de page "Accueil" sous la métabox "Pages". Sélectionnez-le et ajoutez-le à votre menu personnalisé.

Crédit et captures d'écran ici .

0
Chip Bennett