元查询比较事件日期的问题



我的自定义帖子事件遇到了一些问题。我想只显示日期等于或大于今天的事件,但我的代码不起作用 正确并显示过去和未来的所有事件。

我的代码:

在函数中注册自定义帖子类型.php

function create_posttype() {
register_post_type('event', array(
'public' => true,
'has_archive' => false,
'taxonomies' => array('category'),
'supports' => array(
'title', 'editor','thumbnail', 'custom-fields', 'revisions',     'page-attributes', 'post-formats'
),
'menu_icon' => 'dashicons-calendar-alt',
'rewrite' => array('slug' => 'events'),
'labels' => array(
'name' => __( 'Events' ),
'singular_name' => __( 'Event' ),
'add_new_item' =>__('Add New Event'),
'edit_item' =>__('Edit Event'),
'all_item' =>__('All Events')
),
));
add_action( 'init', 'create_posttype' );

头版.php我想展示我未来的活动:

start_event_date是自定义字段(日期选取器), 显示格式: d/m/y, 返回格式: d/m/y,

$today =  date('d/m/Y');
$argsEvents = array(
'post_type' => 'event',
'posts_per_page' => 3,
'meta_key' => 'start_event_date',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'start_event_date',
'compare' => '>=',
'value' => $today,
'type' => 'datetime'
)
)                    
);
$theEventsPosts = new WP_Query($argsEvents);
while($theEventsPosts->have_posts()){
$theEventsPosts->the_post();
//here i have my event-card-post html 
}

我认为我的代码是正确的,但仍然不起作用。 请给我任何建议。

最近我遇到了同样的问题。当我深入研究 ACF PRO 文档时,我发现返回日期格式与字段日期在数据库中的存储方式无关。事实上,它是Ymd - https://www.advancedcustomfields.com/resources/date-picker/这是您应该用于$today的值。另外,我在meta_query中使用了'DATE'类型。

$today =  date('Ymd');

'meta_query' => array(
array(
'key' => 'start_event_date',
'compare' => '>=',
'value' => $today,
'type' => 'DATE'
)
)

最新更新