使用WP_Query&过滤帖子时出现问题日期存储为Meta值

时间:2017-01-05 12:31:51

标签: php wordpress date

我无法使用WP_Query和日期值元素值过滤日期值。我为每个帖子都有自定义帖子类型和元数据值,其中两个元数值是日期:event_start_dateevent_end_date。我的前端代码工作正常,直到我要求查询仅显示event_start_date >= today

的帖子

我有5个我正在测试的自定义帖子,event_start_date值在下面(每个元素的值都存储为数据库中的DateTime对象,我为了便于阅读而在下面编辑过):

  1. 2012-04-03
  2. 2012-04-10
  3. 2012-04-11
  4. 2012-04-17
  5. 2017年3月29日
  6. 当前显示的是所有帖子(与自定义帖子类型匹配),无论帖子的日期如何。我在下面的代码是根据WP_Query上的这个Codex Link改编的,并使用meta_query上Codex Link的规则:

    $args = array(
                'post_type'      => 'event' ,
                'posts_per_page' => $numberOfPosts, //declared variable
                'meta_key'       => 'event_start_date',
                'orderby'        => 'meta_value',
                'order'          => 'ASC',
                'meta_query' => array(
                    array(
                        'key'     => 'event_start_date',
                        'value'   => '2017-01-01', //I've hard-coded this to test with
                        'compare' => '>=',
                    ),
                )
            );
    $listings = new WP_Query( $args );
    

    我认为我的比较运算符可能是错误的方式,所以我尝试了#34;< ="当我这样做时,我得到了#34;没有找到列表"错误。

    修改

    在实现下面的有用答案后,问题仍然存在,事实证明meta_query不喜欢将日期存储为对象。我更新了meta_values的存储和测试方式,并且一切正常。

1 个答案:

答案 0 :(得分:0)

您需要将master参数集type添加到DATE数组。

查询需要知道要比较的项目类型。

meta_query

您将找到meta_query参数here

的所有详细信息

希望它可以运作!