根据另一个自定义字段的值显示帖子

时间:2012-11-04 21:47:52

标签: wordpress custom-post-type

如何根据其中一个自定义字段的值显示帖子?我的代码似乎不起作用:

$args = array(
    'post_type' => 'sample-cpt',
    'meta_query ' => array(array('key'=>'cpt_display', 'value' => 1))
);
$samples = new WP_Query($args);

即使cpt_display的值为0,这仍会返回所有帖子。我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

试试这个..

添加meta_key =键作为args的一部分, 然后再将它包含在meta_query数组

 $args = array(
   'post_type' => 'sample-cpt',
   'meta_key' => 'key',
   'order' => 'ASC',
   'meta_query' => array(
       array(
           'key' => 'key',
           'value' => 1
       )
   )
 );
 $samples = new WP_Query($args);

http://codex.wordpress.org/Class_Reference/WP_Query

答案 1 :(得分:0)

我找到了答案。 'meta_value'的值必须是数组而不是字符串。这与WP_Query Codex有很大的偏差,需要修复。

$args = array(
    'post_type' => 'sample-cpt',
    'meta_key' => 'cpt_display',
    'meta_value' => array(1)
);
$samples = new WP_Query($args);
wp_reset_query();

现在它只显示自定义字段值为1的帖子。查看请求查询,它显示通过使用数组,请求转换为使用SQL IN()来搜索帖子而不是'='

...postmeta.meta_key='cpt_display' AND CAST(postmeta.meta_value AS CHAR) IN ('1'))...

来源:Display custom post type by custom field date range