Adaugă clase personalizate pentru link-uri în wp_nav_menu
Vreau să adaug o clasă personalizată pentru link-uri în rezultatele generate de wp_nav_menu
.
În mod implicit, rezultatul arată așa:
<li id="menu-item" class="menu-item menu-item-type-custom">
<a href="http://example.com">example</a>
</li>
Vreau să obțin acest rezultat:
<li id="menu-item" class="menu-item menu-item-type-custom ">
<a href="http://example.com" class="class">example</a>
</li>

Puteți face acest lucru cu ajutorul filtrului 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'; // sau ceva bazat pe $item
$atts['class'] = $class;
return $atts;
}

Cum aș putea include mai multe atribute diferite atts
în interiorul ancorului? Adică nu doar adăugarea de clase, ci și adăugarea aria-expanded="false"
?

Am o soluție mai bună https://stackoverflow.com/a/67859550/9207553

Am o soluție pentru a adăuga o clasă la tag-ul anchor.
1: Pasul 1: adăugați acest cod în 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: Apoi folosiți-o astfel în tema dumneavoastră
<?php
// Afișează meniul aici
wp_nav_menu(array(
'theme_location' => 'my-footer-menu',
'menu_class' => 'footer-top list-unstyled',
'add_a_class' => 'box-link text-dark',
));
?>

Puteți adăuga clase în mod nativ prin interfața din admin. Deschideți Opțiuni Ecran
(în partea dreaptă sus a ecranului) și bifați Clase CSS
. Nu-mi amintesc dacă clasa se aplică pe link în sine, dar puteți oricând să țintiți link-ul din interiorul containerului cu 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;
}
Acum poți folosi add_link_class
ca un array în meniuri.
