Aggiungere la classe active a wp_nav_menu

25 lug 2018, 17:05:27
Visualizzazioni: 19.8K
Voti: 0

Sto usando questo codice ma non funziona

function special_nav_class($classes, $item){
    // Aggiunge la classe 'active' se l'elemento è la voce di menu corrente
    if( in_array('current-menu-item', $classes) ){
        $classes[] = 'active';
    }
    return $classes;
}
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);

Ispeziona Elemento:

<li id="menu-item-106" class="d-inline-block menu-item menu-item-type- 
post_type menu-item-object-page current-menu-item page_item page-item-32 
 current_page_item menu-item-106 active"><a href="#">Qualcosa</a></li>

Aggiunge la classe active ma il design rimane comunque lo stesso.

1
Commenti

Il codice funziona correttamente e puoi verificarlo nell'Inspector. Per prima cosa, svuota tutte le cache e aggiorna la pagina. In secondo luogo, controlla il tuo CSS.

Max Yudin Max Yudin
25 lug 2018 17:44:34
Tutte le risposte alla domanda 1
2

Non avrai bisogno di quel codice PHP per stilizzare i link alla pagina corrente nel tuo menu. WordPress aggiunge una classe (current-menu-item) di default sui link alla pagina corrente. Ma WordPress non applica stili al link per te. Questo sarebbe parte del tema. Puoi aggiungere una regola al CSS del tema (tipicamente /wp-content/themes/tuo_tema/style.css) per stilizzare il link in modo diverso. Per esempio:

li.current-menu-item a {
    color: pink;
    // o qualsiasi altro stile
}
25 lug 2018 19:17:31
Commenti

Grazie per la risposta. Ho appena controllato il file style.css e ho visto che current-menu-item non è presente da nessuna parte.

TestimiUEB TestimiUEB
26 lug 2018 10:19:25

@TestimiUEB Potresti voler rileggere la mia risposta: "WordPress non applica stili al link per te" ... "Puoi aggiungere una regola"

Andrew Magill Andrew Magill
26 feb 2019 20:20:27