web-dev-qa-db-fra.com

Ajouter des classes personnalisées à ancrer dans wp_nav_menu

Je souhaite ajouter une classe personnalisée aux ancres dans les sorties wp_nav_menu.

La valeur par défaut est par exemple:

<li id="menu-item" class="menu-item menu-item-type-custom">
    <a href="http://example.com">example</a>
</li>

Je veux ceci :

<li id="menu-item" class="menu-item menu-item-type-custom ">
    <a href="http://example.com" class="class">example</a>
</li>
4
Hector

Vous pouvez le faire avec le filtre nav_menu_link_attributes .

add_filter( 'nav_menu_link_attributes', 'wpse156165_menu_add_class', 10, 3 );

function wpse156165_menu_add_class( $atts, $item, $args ) {
    $class = 'class'; // or something based on $item
    $atts['class'] = $class;
    return $atts;
}
8
cjbj

Vous pouvez ajouter des classes de manière native via l'interface dans admin. Ouvrez Screen Options (en haut à droite de l'écran) et cochez CSS Classes. Je ne me souviens pas si la classe s'applique à se lier, mais vous pouvez toujours cibler le lien dans le conteneur avec CSS (.class a).

3
Rarst