Add category to body class

时间:2016-08-23 作者:JGeer

我想将currenty类别添加到body类。

如何修改当前代码,将当前类别作为主体类添加到is_singular( \'knowledgebase\' ) 部分

我当前的代码如下所示:

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;

}

2 个回复
SO网友:Rarst

在这个过程的后期,您应该能够依赖上下文设置,甚至在循环之外。

在我的脑海中,这样的事情应该会起作用:

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

SO网友:Aftab

我不明白是什么global $pakb.

但延伸到最罕见的答案:

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;
}