wordpress - 元查询比较事件日期的问题
问题描述
我的自定义发布事件有一些问题。我只想显示日期等于或大于今天的事件,但我的代码无法正常工作并显示过去和未来的所有事件。
我的代码:
在functions.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' );
front-page.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
. 另外,我'DATE'
在meta_query
.
$today = date('Ymd');
和
'meta_query' => array(
array(
'key' => 'start_event_date',
'compare' => '>=',
'value' => $today,
'type' => 'DATE'
)
)
推荐阅读
- react-native - 如何使用 React Navigation 在 React Native 的标签栏上制作圆角?
- r - 为什么 cross() 不能正常工作?
- jquery - 如何从颜色框中删除底部边距空白
- c - 将字符串分配给C中的结构变量时出现分段错误
- windows - 是否有可能以 git detached head 结束拉,推,取或变基?
- python-2.7 - Python 2.7 64 位错误地引用 32 位 (x86) 的包含文件
- c# - C# 和 EF 实体不会作为 IsTempSaved 添加到实体集
- regex - Ruby:通过大写字母和首字母缩略词将字符串分解为单词
- javascript - [Discord.Js]如何在另一台服务器上获取新的存档(数组)
- python-3.x - 获取 ec2 信息的 boto3 代码 - 但需要知道卷加密状态