【问题标题】:Add new class to css if post_meta_value matches如果 post_meta_value 匹配,则将新类添加到 css
【发布时间】:2017-08-31 00:34:48
【问题描述】:

我正在尝试向帖子添加一个新类,以便我可以通过 css 为该类设置不同的样式。对于所有帖子类型event_listing,当前的div 类是box-layout。我希望如果任何帖子的 meta_key _featured 的 meta_value 为 1 那么它应该在当前类之前或之后添加一个新类。应该是box-layout featured-class

下面是我试图在我的主题functions.php文件中使用它但还没有成功的代码。

add_filter('body_class','add_featured_class');
function add_featured_class ( $classes ) {
    global $post;
    if ( "1" == get_post_meta( get_the_ID(), '_featured', true )  ) {
        $classes[] = 'featured-class';  
    }
    // return the $classes array
    return $classes;
}

【问题讨论】:

    标签: php css wordpress class


    【解决方案1】:

    你不能在循环外使用 get_the_ID() 。尝试 $post->ID 代替。假设您的帖子将“_featured”帖子元设置为1,这对我有用。

    add_filter('body_class','add_featured_class');
    function add_featured_class ( $classes ) {
        global $post;
        if ( "1" == get_post_meta( $post->ID, '_featured', true )  ) {
            $classes[] = 'featured-class';  
        }
        // return the $classes array
        return $classes;
    }
    

    还要确保你的 body 标签看起来像这样:

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

    【讨论】:

    • 你能告诉我这个body标签通常可以放在哪里吗?我的意思是在哪个文件中?因为我不太擅长编码。谢谢
    • @AtharK 在你的主题中通常在 header.php 中
    • 仍然没有任何反应。我还检查了body标签是否与'body_class'相同。
    • @AtharK 我已经测试了代码,假设您的帖子将“_featured”帖子元设置为1,它工作得很好。您如何设置它?你有这部分吗?我不认为这是内置的 wordpress 功能。
    • 是的,我已将帖子元“_featured”设置为 1。我已经有另一个功能可以使用相同的帖子元值正常工作。只有类没有被添加。
    猜你喜欢
    • 1970-01-01
    • 2016-10-18
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    相关资源
    最近更新 更多