我的问题是:
$products = new WP_Query( array(
\'post_type\' => \'ys_product\',
\'orderby\' => array( \'date\' ),
\'order\' => \'DESC\',
\'posts_per_page\' => 8,
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'ys_product_status\',
\'value\' => \'ok\'
),
array (
\'key\' => \'ys_product_start\',
\'value\' => date(\'Ymd\'),
\'compare\' => \'>=\'
),
array (
\'key\' => \'ys_product_end\',
\'value\' => date(\'Ymd\'),
\'compare\' => \'<=\'
)
)
) );
在我的数据库中,有两个项目的post\\u类型为“ys\\u product”,post\\u meta如下所示:
项目1
meta\\U key ys\\U product\\U status=‘ok’
meta\\U key ys\\U product\\U start=‘20141101’meta\\U key ys\\U product\\U end=‘20141230’今天日期(‘Ymd’)的结果是‘20141226’,这似乎明显介于这些界限之间。
但如果我只按“ys\\U product\\U status”(ys\\U product\\U状态)进行搜索筛选,则==“ok”(确定);我买了两件东西。但当我添加另外两个meta时,它根本不会返回任何结果。
我做错了什么?
谢谢和问候。(使用WP 4.1)
SO网友:yivi
恐怕是愚蠢的拼写错误。
这是:
array (
\'key\' => \'ys_product_start\',
\'value\' => date(\'Ymd\'),
\'compare\' => \'>=\'
),
array (
\'key\' => \'ys_product_end\',
\'value\' => date(\'Ymd\'),
\'compare\' => \'<=\'
)
应该是这样的:
array (
\'key\' => \'ys_product_start\',
\'value\' => date(\'Ymd\'),
\'compare\' => \'<=\'
),
array (
\'key\' => \'ys_product_end\',
\'value\' => date(\'Ymd\'),
\'compare\' => \'>=\'
)