web-dev-qa-db-fra.com

Comment obtenir current_cat dans la barre de navigation, dans un seul post

Dans un site Web utilisant Wordpress 3.0, lorsque je suis dans un seul article, la barre de navigation affichant les catégories ne donne pas à la catégorie parente la classe "current_cat" et par conséquent, cette catégorie n'est pas mise en surbrillance.

Comment faire en sorte que Wordpress attribue cette classe à la catégorie parente en mode single_post?

6
Lea Cohen

J'ai trouvé la réponse ici .
Ajoutez à functions.php la fonction suivante et raccordez-la:

function sgr_show_current_cat_on_single($output) {

global $post;

if( is_single() ) {

    $categories = wp_get_post_categories($post->ID);

    foreach( $categories as $catid ) {
        $cat = get_category($catid);
        // Find cat-item-ID in the string
        if(preg_match('#cat-item-' . $cat->cat_ID . '#', $output)) {
            $output = str_replace('cat-item-'.$cat->cat_ID, 'cat-item-'.$cat->cat_ID . ' current-cat', $output);
        }
    }

}
return $output;
}

add_filter('wp_list_categories', 'sgr_show_current_cat_on_single');
5
Lea Cohen