Append class to posts page

时间:2017-10-12 作者:Dominic Neo

我正在尝试为博客/帖子页面设计一些独特的风格,而这并不在首页上。当前的body标记如下所示:<body <?php body_class() ?>><但是这样做<body <?php body_class(\'blog\') ?>> 仅返回<body class="logged-in"> 或者只是<body> 如果我没有登录<我试过了:

<body <?php if ( is_home()) {
    echo \'class="blog"\';
} else {
    body_class(); }?>>
它可以正常工作,但它完全取代了“登录”类。必须有一种方法将类附加到posts页面的body标记,对吗?

2 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

在主题的函数文件中,使用body_class 筛选以添加新类:

function wpse_282694_body_class( $classes ) {
    if ( is_home() ) {
        $classes[] = \'blog\';
    }

    return $classes;
}
add_filter( \'body_class\', \'wpse_282694_body_class\' );
如果您的类别存档、标记存档、日期存档和搜索结果也需要相同的样式,这很常见,请按如下方式检查它们:

if ( is_home() || is_date() || is_tag() || is_category() || is_search() ) {}
请注意,我没有使用is_archive(), 因为这也会影响您可能使用的任何自定义帖子类型。

SO网友:Piyush Rawat

可以将类作为参数传递

<body <?php if ( is_home()) { body_class(\'my-class\'); } else { body_class(); }?>>

结束

相关推荐

为自定义帖子类型/分类设置不同的POSTS_PER_PAGE

我有一个自定义的帖子类型,我想在我的网站上的分类页面上完全显示该帖子类型,而不是网站的常规博客部分。我制作了一个自定义分类法和帖子类型,如下所示:add_action(\'init\', \'create_post_types\'); function create_post_types() { register_taxonomy(\'tips-and-tricks-taxonomy\', \'tat\', array( \'hierarchical\'