Php 如果post_meta_值匹配,则向css添加新类

Php 如果post_meta_值匹配,则向css添加新类,php,css,wordpress,class,Php,Css,Wordpress,Class,我正在尝试向帖子中添加一个新类,这样我就可以通过css对该类进行不同的样式设置。对于所有帖子类型事件列表,div的当前类为框布局。我希望,如果任何帖子的meta_键\u特色的meta_值为1,那么它应该在当前类之前或之后添加一个新类。它应该像框布局特色类 下面是我试图在theme functions.php文件中使用它的代码,但尚未成功 add_filter('body_class','add_featured_class'); function add_featured_class ( $cl

我正在尝试向帖子中添加一个新类,这样我就可以通过css对该类进行不同的样式设置。对于所有帖子类型
事件列表
,div的当前类为
框布局
。我希望,如果任何帖子的meta_键
\u特色
的meta_值为
1
,那么它应该在当前类之前或之后添加一个新类。它应该像
框布局特色类

下面是我试图在theme 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;
}
不能在循环外使用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 <?php body_class(); ?>>

你能告诉我这个身体标签通常在哪里吗?我是说在哪个文件里?因为我不太擅长编码。Thanks@AtharK在您的主题中,通常在header.phpstill中不会发生任何事情。我还检查了body标签是否与“body_class”相同。我已经测试了代码,如果您的帖子将“_featured”post meta设置为1,那么它就可以正常工作。你是怎么设置的?你们有这部分的保险吗?我不认为这是一个内置的wordpress功能。是的,我将post meta“\u featured”设置为1。我已经有了另一个功能,它可以很好地处理相同的post meta值。只有类没有被添加。