Doriți să adăugați clasa ancestor la postările individuale? Când deschideți o pagină de postare individuală (adică single.php), nu primiți nicio clasă current_page_item sau current-page-ancestor pe wp_nav_menu. De asemenea, nu puteți spune utilizatorilor în ce secțiune se află în prezent.
Instrucțiuni:
Tot ce trebuie să faceți este să adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:
<?php
function add_single_post_ancestor_nav_class($classes, $item){
global $post;
$is_ancestor = false;
if ( is_single() ) {
if ( $post->post_type != 'post' ) {
// Checks if the custom-post-type label name matches the title of the nav-page-item
$post_type_obj = get_post_type_object($post->post_type);
$post_type_labels = $post_type_obj->labels;
$post_type_name = $post_type_labels->name;
if( $item->title == $post_type_name ) { $is_ancestor = true; }
}
else {
// Checks if one of the single-post categories matches the title of the nav-page-item
$categories = get_categories();
foreach ( $categories as $category ) {
if ( in_category($category->name) && $item->title == $category->name ) { $is_ancestor = true; }
}
}
if( $is_ancestor ){ $classes[] = 'current-page-ancestor'; }
}
return $classes;
}
add_filter('nav_menu_css_class' , 'add_single_post_ancestor_nav_class' , 10 , 2);
?>
Dacă numele generic din etichete nu se potrivește cu titlul paginii, atunci nu va adăuga clasa.
Notă: Dacă este prima dată când adăugați secvențe de cod în WordPress, consultați ghidul nostru despre cum să copiați / lipiți corect secvențe de cod în WordPress, pentru a nu vă defecta accidental site-ul.
Dacă v-a plăcut acest fragment de cod, vă rugăm să luați în considerare vizitarea altor articole de pe site, cum ar fi: 7 cele mai bune servicii VPN pentru utilizatorii WordPress și 12 cele mai bune plugin-uri WordPress pentru podcasturi.
Poți pune codul pe această pagină? Nu-l văd…
Actualizat!