使用ACF日期选择器仅在今天的日期之后显示帖子

时间:2013-07-17 22:06:10

标签: wordpress datepicker

我正在使用高级自定义字段来创建名为“事件”的帖子类型,并使用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();
            ?>

所以基本上,如果活动日期超过当前日期,我不希望帖子再显示。

任何提示?

1 个答案:

答案 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')是您当前的日期格式