我关注wp_query
。此查询基于ACF(高级自定义字段)日期字段筛选自定义帖子类型。此查询显示自定义字段中提供的日期等于当前年份或将来的所有帖子。
<?php
$current_year = date('Y');
$args = array(
'post_type' => 'result',
'meta_key' => 'date_field',
'meta_query' => array(
array(
'key' => 'date_field',
'compare' => '>=',
'value' => $current_year,
)),
);
$the_query = new WP_Query( $args ); ?>
...
我想做的只是显示当年的帖子。在上面的查询中,未来几年仍会显示。
我尝试删除比较值或将其更改为“==”。但是没有帖子显示。我假设原因是'date_field'
中的值以('Ymd')
格式存储。
我查看了ACF documentation并找到了从日期字段中提取年份的方法,如下所示:
$date = get_field('date_field', false, false);
$date = new DateTime($date);
$date->format('Y');
但我不确定如何在查询中实现该值。我尝试将键值更改为$date
,但不会显示任何帖子。
答案 0 :(得分:0)
ACF将日期保存为‘YYYYMMDD’
$args = [
'post_type' => 'result',
'meta_key' => 'date_field',
'meta_value' => date( "Ymd" ),
'meta_compare' => '>=',
];
$query = new WP_Query( $args );