根据自定义日期字段隐藏过去的活动帖子
问题描述:
我希望根据我设置的自定义日期字段隐藏过去的活动。根据自定义日期字段隐藏过去的活动帖子
<?php
the_post();
// Get 'events' posts
$events_posts = get_posts(array(
'post_type' => 'events',
'posts_per_page' => -4, // Unlimited posts
'orderby' => 'meta_value',
'meta_key' => 'event_date',
'order' => 'ASC'
));
if ($events_posts):
?>
该代码目前呈现出我的活动有序,但我想隐藏事件比今天的日期的?
答
我想你是在讨论通过$ event_posts结果循环,同时排除那些日期“小于今天”的事件。这是一种非常优化和不恰当的方式来实现你想要的。你应该让MySQL检索日期大于NOW()的事件。如果event_date字段是DATETIME类型,则修改您的查询以仅获取“event_date”大于NOW()的事件。
"SELECT events WHERE event_date >NOW()"
答
如果您想通过自定义后场来过滤数据,你必须使用meta_query
这个
这里是工作示例:
$args = [
'post_type' => 'events',
'posts_per_page' => -1, // Unlimited posts
'orderby' => 'meta_value',
'meta_key' => 'event_date',
'order' => 'ASC',
'meta_query' => [
'relation' => 'AND',
[
'key' => 'event_date',
'value' => date('Y-m-d'), //<-- replace this with your correct date format
'compare' => '>',
'type' => 'DATE'
],
],
];
$queryEvent = new WP_Query($args);
if ($queryEvent->have_posts()) :
/* Start the Loop */
while ($queryEvent->have_posts()) :
$queryEvent->the_post();
//you post
endwhile;
endif;
希望这有助于!
'event_date'字段的日期格式是什么? –