我正在使用高级自定义字段来创建名为“事件”的帖子类型,并使用jquery日期选择器来选择事件的日期。我目前按活动日期订购帖子,从最早的日期开始到最晚,但我希望过去的日期不显示在查询中。
这是我的代码:
<?
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} else if ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}
query_posts( array( 'post_type' => 'events', 'meta_key' => 'event_date', 'orderby' => 'meta_value_num', 'posts_per_page' => 4, 'order' => 'ASC', 'paged' => $paged ) );
while (have_posts()) : the_post();
?>
所以基本上,如果活动日期超过当前日期,我不希望帖子再显示。
任何提示?
答案 0 :(得分:0)
我会去寻找自定义查询:
global $wpdb;
$items_per_page = 10;
$offset = 0;
$query = "
SELECT
posts.*,
DATE(postmeta.meta_value)
FROM " . $wpdb->prefix . "posts AS posts
RIGHT JOIN " . $wpdb->prefix . "postmeta AS postmeta ON (postmeta.post_id = posts.ID)
WHERE
posts.post_type = 'events' AND
postmeta.meta_key = 'event_date' AND
postmeta.meta_value > '" . date('Y-m-d H:i:00') . "'
ORDER BY postmeta.meta_value ASC
LIMIT " . $offset . ", " . $items_per_page . "
";
$events = $wpdb->get_results($query);
foreach ($events as $event): setup_postdata($event);
//event loop
endforeach; wp_reset_postdata();
date('Y-m-d H:i:00')
是您当前的日期格式