首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用add_filter函数向div添加一个类

使用add_filter函数向div添加一个类
EN

Stack Overflow用户
提问于 2018-05-29 19:10:02
回答 1查看 544关注 0票数 1

我之前使用过add_filter()函数将一个类添加到主体中,如下所示:

代码语言:javascript
复制
add_filter( 'body_class', 'add_custom_class' );
function add_custom_class( $classes ) {
    if ( is_single() ) {
        $classes[] = 'post';
        }
    return $classes;
}

我希望能够使用以下内容将类添加到div中:

代码语言:javascript
复制
add_filter( 'div_class', 'add_custom_class' );
function add_custom_class( $classes ) {
    if ( is_single() ) {
        $classes[] = 'post';
        }
    return $classes;
}

或者更好的是:

代码语言:javascript
复制
add_filter( 'div_class', 'add_custom_class' );
function add_custom_class( $classes ) {
    if ( is_single() ) {
        $classes[] = 'post';
        }
    else if ( is_singular( 'custom-post-type' ) ) {
        $classes[] = 'custom-post-type-class';
        }
    return $classes;
}

然后在我的主题中引入类,如下所示:

代码语言:javascript
复制
<div class="wrapper <?php echo div_class(); ?>">

这个是可能的吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 20:11:48

是的,这是完全可能的。

代码语言:javascript
复制
function so50582899_div_class($classes) {
    global $post;
    if(is_single()) {
        $classes[] = 'single-post';
    } elseif(is_page()) {
        $classes[] = 'page'
    }

    return $classes;
}
add_filter('post_class', 'so50582899_div_class');

然后你可以像<div class="<?php post_class(); ?>">一样调用它

编辑:要删除所有现有的类,请在函数的顶部添加$classes = array();。这将重置返回的类,并且只返回您在函数中设置的类。

所以它最终会是这样的:

代码语言:javascript
复制
function so50582899_div_class($classes) {
    global $post;
    $classes = array();

    if(is_single()) {
        $classes[] = 'single-post';
    } elseif(is_page()) {
        $classes[] = 'page'
    }

    return $classes;
}
add_filter('post_class', 'so50582899_div_class');

参考:https://codex.wordpress.org/Function_Reference/post_class#Add_Classes_By_Filters

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50582899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档