Php 如何在Wordpress的body_Class()中检查类

Php 如何在Wordpress的body_Class()中检查类,php,wordpress,Php,Wordpress,在Wordpress header.php中,我有 <body <?php body_class($class); ?>> 谢谢 您可以使用过滤器访问body\u类,add\u过滤器('body\u类',函数…)但是,我认为您采取了错误的方法。为什么不直接使用css来满足您的需要呢?例如,.home>div{/*home styles*/} 或者您可以加载不同的样式表 add_filter('body_class', function($classes) {

在Wordpress header.php中,我有

<body <?php body_class($class); ?>>


谢谢

您可以使用过滤器访问
body\u类
add\u过滤器('body\u类',函数…)
但是,我认为您采取了错误的方法。为什么不直接使用css来满足您的需要呢?例如,
.home>div{/*home styles*/}

或者您可以加载不同的样式表

add_filter('body_class', function($classes) {
    if (in_array('home', $classes)) {
        wp_enqueue_style('home');
    }
    return $classes;
});

如果确实需要基于
body\u类
类使用不同的标记,那么使用


但可能有更好的方法可以做到这一点,比如@Rob的建议。这些映射与
body\u class

使用的类非常接近,我遇到了与使用不同模板创建页面相同的问题,但每个页面上的自定义子菜单必须相同

我先尝试了这个,但失败了

-模板文件的第一行


我想采用这种方法,而不是添加带有特定类的样式表,这样我就可以只为主页加载特定部分,或者加载另一个php代码片段,或者基于另一个类进行标记。然后我建议使用我已经尝试过的方法,用“get_body_class()”获取body类,但是当它在数组中搜索并回显内容时,它会吐出所有的类标记,除了我手动添加的带有“body_class($class);”的标记。我做错什么了吗?我可以在body标记中看到我的类,但是“get_body_class();”没有包含在那里…@KerynGill:听起来你的问题与OP中的不同。你可能应该打开或自己的问题,并提供代码供我们评估。你的答案是在body标签中添加一个类,而这个问题是关于找出是否有一个特定的类被添加到body标签中。如果你读了他对
最佳答案的回答,他说用

add_filter('body_class', function($classes) {
    if (in_array('home', $classes)) {
        wp_enqueue_style('home');
    }
    return $classes;
});
$classes = get_body_class();
if (in_array('home',$classes)) {
    // your markup
} else {
    // some other markup
}
$classes = get_body_class();
if($GLOBALS['extraBodyClass']){
   $classes[] = $GLOBALS['extraBodyClass'];
}