body_class wordpress加载其他类

时间:2015-04-15 18:33:08

标签: wordpress

当我访问某个类别时,我尝试制作不同的身体类,它的工作完美除非我尝试创建新类别然后访问类别帖子,它将回显特定的类别而不是正常的body_class();

这里的代码:   的header.php:

<?php

$catid1 = get_cat_ID( 'פאודה צפייה ישירה' );

$currentcatID = the_category_ID($echo=false);

if(is_single() && $catid1 == $currentcatID){
 $catid1 = $catid1;
}else{
 $catid1 = $currentcatID;
}
?>

<body <?php

    if(!empty($currentcatID)){
        if(is_single()){
            if($catid1 == $currentcatID){
            echo 'class = "rtl single single-post category-'.$catid1.' postid-81 single-format-standard featured-image-only"';
            }else{
              body_class();
            }
        }else{
              body_class();
        }
    }
   ?>>

当我访问索引网站时,所有工作都很完美,当我访问该类别的页面时,ID也工作正常,但在创建新类别并添加测试帖时,它会回显第一个类echo 'class = "rtl single single-post category-'.$catid1.' postid-81 single-format-standard featured-image-only"'; 我不想要,我想回应body_class();

简短:我想只在类别1回应特定类,否则使用普通的body_class();

知道它为什么不起作用吗?

1 个答案:

答案 0 :(得分:1)

您应该使用body_class过滤器,而不是在某些情况下尝试重新创建身体类。

如果我理解正确,您希望为特定类别添加某个类到正文。这应该在不重新发明body_class

的情况下实现
add_filter('body_class', function($classes) {
    $catid = get_cat_ID( 'פאודה צפייה ישירה' );
    $currentcatID = get_query_var('cat');
    if($catid == $currentcatID) {
        $classes[] = 'my-additional-class';
    }
    return $classes;
});

确保在致电body_class之前添加过滤器,通常只需将其添加到主题的functions.php文件中。

https://codex.wordpress.org/Plugin_API/Filter_Reference/body_class