根据自定义字段日期字段仅获取以后的帖子

时间:2015-10-27 18:12:57

标签: php wordpress

我正在尝试仅接收来自Wordpress中某个页面的未来事件的帖子。我有一个日期自定义字段,可让我在将来设置日期,以便与今天的日期进行比较:

        <?php

            $date = new DateTime();

            $posts = get_posts(array(
                'posts_per_page'    => -1,
                'post_type'         => 'post',
                'post_status'       =>  'publish',
                'category_name'     => 'event',
                'meta_key'          => 'date',
                'orderby'           => 'meta_value_num',
                'order'             => 'DESC',
                'meta_query'        => array(
                    'key'       => 'date',
                    'value'     => $date->getTimestamp(),
                    'type'      => 'NUMERIC',
                    'compare'   => '>'
                )
        )); ?>

这仍然显示所有帖子,有人可以告诉我哪里出错了吗?

2 个答案:

答案 0 :(得分:1)

如果您的date字段是ACF DatePicker字段,那么您将需要这样的内容。 DatePicker字段不将值存储为时间戳,而是以Ymd格式存储。

$upcoming_events = get_posts( array( 
    'post_type'         => 'event',
    'post_status'       => 'publish',
    'posts_per_page'    => -1,
    'meta_key'          => 'date',
    'orderby'           => 'meta_value_num',
    'order'             => 'asc',
    'meta_query'    => array(
        'relation'      => 'AND',
        array(
            'key'       => 'date',
            'compare'   => '>=',
            'value'     => date( 'Ymd' ),
        )
    ),
) );

答案 1 :(得分:0)

如果有人发现这个有用,这就是我解决的问题:

<?php

            $date = new DateTime();
            $today = $date->getTimestamp();

            $posts = get_posts(array(
                'posts_per_page'    => -1,
                'post_type'         => 'post',
                'post_status'       =>  'publish',
                'category_name'     => 'event',
                'meta_key'          => 'date',
                'orderby'           => 'meta_value_num',
                'order'             => 'ASC',
                'meta_query'    => array(
                    'relation'      => 'AND',
                    array(
                        'key'       => 'date',
                        'compare'   => '>=',
                        'value'     => $today,
                    )
                )
            ));
?>