如何从WP_QUERY获取元值?

时间:2013-10-10 作者:Joren

我有自定义的帖子类型foo 调用元字段barbaz. 现在我得到了WP_Query 对象使用:

$args = array( 
       \'post_type\'      => \'foo\', 
       \'meta_key\'       => \'bar\', 
       \'meta_value\'     => $bar_value,
       \'posts_per_page\' => 10,
);
$res = new WP_Query($args);
现在我想检查一下baz 所选职位的等于$baz_value. 我该怎么做?

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

我自己也找到了解决问题的办法。既然现有的答案都不能解决这个问题,我想我最好在这里发布我的答案,以帮助有类似问题的人。

解决方案:

if($res->have_posts()) { 
    $id = $mail_res->posts[0]->ID; // blindly assuming there is only 1 post having baz = baz_value
    $true_baz = get_post_meta($id, \'baz\')[0];

    if($true_baz== $baz) {
        //success
    } else {
        //error
    }
} else {
    //error
}

SO网友:Sabir Abdul Gafoor Shaikh

你试过这个吗:

$args = array( 
   \'post_type\'      => \'foo\', 
   \'meta_key\'       => \'bar\', 
   \'meta_value\'     => $bar_value,
   \'posts_per_page\' => 10,
);
$res = new WP_Query($args);

 to 
  $args = array( 
   \'post_type\'      => \'foo\', 
   \'meta_key\'       => \'bar\', 
   \'meta_value\'     => $bar_value,
   \'meta_compare\'     => \'=\',
   \'posts_per_page\' => 10,
);
$res = new WP_Query($args);
阅读以下内容:WP_Query

SO网友:s_ha_dum

查询参数位于查询对象中的多个位置。你可以var_dump 对象并查看它们。

  1. $res->query_vars
  2. $res->meta_query (在这种情况下)
  3. $res->query
项目1和3最容易处理。简单的PHP对象和数组语法将获得所需的信息。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post