Aggiungere classi personalizzate ai link in wp_nav_menu
Voglio aggiungere una classe personalizzata ai link in output di wp_nav_menu
.
Per esempio, l'output predefinito è:
<li id="menu-item" class="menu-item menu-item-type-custom">
<a href="http://example.com">esempio</a>
</li>
Voglio ottenere questo:
<li id="menu-item" class="menu-item menu-item-type-custom ">
<a href="http://example.com" class="class">esempio</a>
</li>

Puoi farlo con il filtro 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'; // o qualcosa basato su $item
$atts['class'] = $class;
return $atts;
}

Come posso includere diversi attributi atts
all'interno dell'ancora? Cioè, non solo aggiungere classi ma anche attributi come aria-expanded="false"
?

Ho una soluzione migliore https://stackoverflow.com/a/67859550/9207553

Ho una soluzione per aggiungere una classe al tag anchor.
1° Passo: aggiungi questo in functions.php
function add_additional_class_on_a($classes, $item, $args)
{
if (isset($args->add_a_class)) {
$classes['class'] = $args->add_a_class;
}
return $classes;
}
add_filter('nav_menu_link_attributes', 'add_additional_class_on_a', 1, 3);
2° Passo: poi usalo così nel tuo tema
<?php
// Mostra il Menu qui
wp_nav_menu(array(
'theme_location' => 'my-footer-menu',
'menu_class' => 'footer-top list-unstyled',
'add_a_class' => 'box-link text-dark',
));
?>

Puoi aggiungere classi in modo nativo tramite l'interfaccia nell'area di amministrazione. Apri Opzioni Schermo
(in alto a destra dello schermo) e seleziona Classi CSS
. Non ricordo se la classe viene applicata al link stesso, ma puoi sempre puntare al link all'interno del contenitore con CSS (.class a
).

add_filter( 'nav_menu_link_attributes', 'wpse156165_menu_add_class', 10, 3 );
function wpse156165_menu_add_class( $classes, $item, $args ) {
if(isset($args->add_link_class)) {
$classes['class'] = $args->add_link_class;
}
return $classes;
}
Ora puoi utilizzare add_link_class
come array nei menu.
