web-dev-qa-db-fra.com

Ajouter une catégorie à la classe de corps

Je veux ajouter la catégorie currenty à la classe body.

Comment dois-je modifier mon code actuel pour ajouter également la catégorie actuelle en tant que classe de corps à la section is_singular( 'knowledgebase' )?

Mon code actuel ressemble à ceci:

function add_body_class( $classes ) {

    global $pakb;

    if( is_page( $pakb->get( 'kb_page' ) ) && ! is_null(  $pakb->get( 'kb_page' ) ) ) {
        $classes[] = 'pakb-main';
    } elseif ( is_tax( 'knowledgebase_category' ) ) {
        $classes[] = 'pakb-category';
    } elseif ( is_singular( 'knowledgebase' ) ) {
        $classes[] = 'pakb-single';
    }

    return $classes;

}
1
Henk Z

À la fin du processus, vous devriez pouvoir compter sur la configuration du contexte, même en dehors de la boucle.

Sur le dessus de ma tête, quelque chose comme ça devrait marcher:

$categories = wp_get_post_categories( get_the_ID(), [ 'fields' => 'names' ] );
1
Rarst

Ici, je ne comprends pas ce qui est global $pakb.

Mais s'étendant à la réponse la plus rare:

add_filter('body_class', 'add_body_class');

function add_body_class($classes) {
    global $pakb;
    global $post;

    if( is_page( $pakb->get( 'kb_page' ) ) && ! is_null(  $pakb->get( 'kb_page' ) ) ) {
        $classes[] = 'pakb-main';
    } elseif ( is_singular( 'knowledgebase' ) ) {
        // getting all category name related to this post
        $categories = wp_get_post_categories( $post->ID, [ 'fields' => 'names' ] );

        $classes[] = $categories;
    }

    return $classes;

return $classes;
}
1
Aftab