我正在尝试获取针对WordPress查询返回的数据集,而我无法获得处理ACF字段的最后一部分。
“ OR”部分可以很好地工作,它返回包含两个行的字段集(包含或不存在)。
问题是我似乎无法过滤掉比今天的日期更旧的ACF字段。
ACF字段(时间)为d-m-Y格式。
因此,基本上,我希望集合返回从今天开始(包括今天)的所有行,以及没有填充ACF的行。
我设法使查询的第一部分起作用,因此将其保留在上下文中。我已经尝试过各种格式的关系/数组,但是要么得到空白结果,要么得到所有行。
$newDate = date('d-m-Y');
$the_query = new WP_Query([
'meta_query' => array(
'relation' => 'OR',
array('key' => 'time', 'compare' => 'NOT EXISTS'),
array('key' => 'time', 'compare' => 'EXISTS'),
),
array( 'relation' => 'AND',
array('key' => 'time', 'value' => $newDate, 'compare' => '>'),
),
'order' => 'DESC',
'cat' => $final_cat,
'orderby' => 'meta_value',
'posts_per_page' => -1,
]);
我应该获取没有较早日期的行,但这会返回当前所有行。
答案 0 :(得分:1)
经过更多的挖掘之后,我发现ACF实际上将日期选择器字段存储在Ymd中,而不管您选择了什么。经过一些调整,我能够返回所有没有日期字段的字段,以及将来的那些日期。
$the_query = new WP_Query([
'meta_query' => array(
'relation' => 'OR',
array('key' => 'time', 'compare' => 'NOT EXISTS'),
array('key' => 'time', 'value' => date('Ymd'), 'type' => 'DATE', 'compare' => '>='),
),
'order' => 'DESC',
'tag' => $sk_tag,
'orderby' => 'meta_value',
'posts_per_page' => -1,
]);