如何在Wordpress中检查body_class()中的类

2022-08-30 21:36:13

在Wordpress标题中.php,我有

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

如何检查特定类是否存在,然后加载标记作为结果?例如

<body class"home logged-in">

<?php if $class == 'home' ?>
    <div class="home"></div>
<? else : ?>
    <div class="internal-page"></div>
<? endif; ?>

谢谢!


答案 1

如果你真的,真的需要根据类使用不同的标记,那么使用get_body_classbody_class

$classes = get_body_class();
if (in_array('home',$classes)) {
    // your markup
} else {
    // some other markup
}

但是可能有更好的方法来做到这一点,比如@Rob对条件标签的建议。这些映射非常接近于 使用的类。body_class


答案 2

您可以使用过滤器进行访问,但是,我认为您采用了错误的方法。为什么不直接使用css来满足你的需求呢?例如body_classadd_filter('body_class', function ...).home>div { /* home styles */ }

或者您可以加载其他样式表

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

推荐