您如何根据其自定义字段之一的值显示帖子?我下面的代码似乎不起作用:
$args = array(
'post_type' => 'sample-cpt',
'meta_query ' => array(array('key'=>'cpt_display', 'value' => 1))
);
$samples = new WP_Query($args);
即使值为cpt_display
a ,这仍会返回所有帖子0
。我错过了什么吗?
您如何根据其自定义字段之一的值显示帖子?我下面的代码似乎不起作用:
$args = array(
'post_type' => 'sample-cpt',
'meta_query ' => array(array('key'=>'cpt_display', 'value' => 1))
);
$samples = new WP_Query($args);
即使值为cpt_display
a ,这仍会返回所有帖子0
。我错过了什么吗?
尝试这个..
添加 meta_key = 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);
我找到了答案。的值'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
。查看请求查询,它表明通过使用数组,请求被转换为使用 SQLIN()
来搜索帖子,而不是'='
:
...postmeta.meta_key='cpt_display' AND CAST(postmeta.meta_value AS CHAR) IN ('1'))...