以自定义字段值为条件的CSS

时间:2014-01-09 作者:JoaMika

我希望根据自定义字段值的值有条件地向ID添加一些CSS规则。

具体而言:

添加到id#firstimg 规则:

opacity:0.4;
filter:alpha(opacity=40);
提供自定义字段fl_status 有价值sold

我想Jquery应该是最好的方式?

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

如果没有任何其他背景(这意味着您可能需要适应您的特定需求),我会考虑using the post_class filter. 使用此过滤器,您可以访问当前帖子的帖子元,并有条件地向帖子容器添加CSS类。

例如:

function wpse129167_filter_post_class( $classes, $class, $postid ) {
    // Get post meta value for fl_status
    $fl_status = get_post_meta( $postid, \'fl_status\', true );
    // If fl_status = sold, add a CSS class
    if ( \'sold\' == $fl_status ) {
        $classes[] = \'fl-status-sold\';
    }
    // Don\'t forget to return the array
    return $classes;
}
add_filter( \'post_class\', \'wpse129167_filter_post_class\', 10, 3 );
查看循环中的帖子标记。看看这个:

<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <!-- post markup will be here
</div>
对于具有post meta键的帖子fl_status 值为sold, 打电话给<?php post_class(); ?> 将在常用类中输出该类fl-status-sold.

因此,您可以使用CSS(直接在style.css, 如果您愿意):

.fl-status-sold #firstimg {
    opacity:0.4;
    filter:alpha(opacity=40);
}

结束