元数据的值为空,IF语句的用法错误

时间:2014-05-11 作者:user49869

我正在使用WP Ratings插件,它使用Wordpress内置的自定义字段来保存评级值。自定义字段的名称为ratings_score. 我想问一下,每个帖子是否都有特定的评分。我所做的是在循环中执行以下操作:

<?php $rating = get_post_meta($post->ID, \'ratings_score\', false); ?> 

<?php if ( $rating == 2 ) ) { ?>
    <script>
        console.log("test");
    </script>
<?php } ?>
但它不起作用。我做错了吗?我也试着问if ( $rating == \'2\' ) 但这是同一个问题。肯定有一些帖子2 作为的值ratings_score

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

尝试:

$rating = get_post_meta($post->ID, \'ratings_score\', false); 
var_dump($rating);
你会注意到array, 即使你的ratings_score2. 也就是说:

array(1) {
  [0]=>
  string(1) "2"
}
这永远不会平等2 所以你的情况永远不会起作用。

的第三个参数get_post_meta() 如果设置为true 将该数组折叠为标量,这样就可以了。

$rating = get_post_meta($post->ID, \'ratings_score\', true); 
var_dump($rating);
请注意,如果您的帖子有多个ratings_scores 你只会得到其中一个,它可能不是你想要的。

使用多个ratings_score 条目使用:

$rating = get_post_meta($post->ID, \'ratings_score\', false); 

if (in_array(2,$rating)) {
  echo \'found it\';
}

结束

相关推荐

wp_query inside the_loop

我的循环有这个问题。我正在制作一个将从主查询调用的快捷码。它将显示在\\u循环的首页上。因为某种我无法理解的原因。第二个查询只显示一篇文章,而它应该显示3篇。因此,短代码将出现在页面内容中。在“设置”部分,我将首页设置为“主页”,将博客页面设置为“博客”,但主页不是模板。它是由索引生成的。使用WordPress 2014主题的php页面。因此,在“主页”内容区域,我有一个快捷码,它生成第二个循环,从一个名为“特色”的类别中获取3篇文章。 $featured = new WP_Query( array( \