我的自定义帖子事件遇到了一些问题。我想只显示日期等于或大于今天的事件,但我的代码不起作用 正确并显示过去和未来的所有事件。
我的代码:
在函数中注册自定义帖子类型.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'
)
)