Möchten Sie die Vorfahrenklasse zu einzelnen Beiträgen hinzufügen? Wenn Sie eine einzelne Beitragsseite öffnen (d. h. single.php), erhalten Sie keine current_page_item- oder current-page-ancestor-Klassen für Ihr wp_nav_menu. Sie können Ihren Benutzern auch nicht mitteilen, in welchem Abschnitt sie sich gerade befinden.
Anweisungen:
Sie müssen diesen Code nur zur functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin einfügen:
<?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);
?>
Wenn der generische Name in den Labels nicht mit dem Titel der Seite übereinstimmt, wird die Klasse nicht hinzugefügt.
Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzuf ilde{A}gen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress kopieren / einf ilde{A}gen, damit Sie Ihre Website nicht versehentlich besch ilde{A}digen.
Wenn Ihnen dieser Code-Schnipsel gefallen hat, sollten Sie sich unsere anderen Artikel auf der Website ansehen, wie z. B.: 7 beste VPN-Dienste für WordPress-Benutzer und 12 beste WordPress-Podcast-Plugins.
Können Sie den Code auf diese Seite stellen? Ich kann ihn nicht sehen…
Aktualisiert!