基于ACF Datepicker值的Wordpress查询结果没有帖子



所以我在post posttype中添加了一些自定义字段,即event_startdate和event_enddate。我的目标是显示当前正在进行的所有事件(因此当前日期介于开始日期和结束日期之间)。但是,没有帖子显示与我当前的代码。

这是我得到的:

<?php
        $today = date('Ymd');
        $args = array (
            'posts_per_page'         => '9',
            'order'                  => 'ASC',
            'orderby'                => 'id',
          'meta_query'             => array(
              array(
                'key'     => 'event_startdate',
                'compare' => '>=',
                'value'   => $today
              ),
              array(
                'key'     =>  'event_enddate',
                'compare' =>  '<=',
                'value'   => $today
              )
          )
        );
        $query = new WP_Query( $args );
        if ( $query->have_posts() ) {
            while ( $query->have_posts() ) {

,然后循环的其余部分。我知道循环工作,因为所有的帖子显示当meta_query被删除。会是什么问题呢?我已经尝试了一些不同的日期格式(硬编码),但这似乎并没有解决它。我也尝试了网上发布的其他解决方案,但似乎没有一个能解决这个问题。

编辑:同时开始处理另一个查询,这次使用event_featured,一个TRUE/FALSE字段。代码与前面提到的代码相同,除了参数。也不返回帖子:
     $args = array (
        'post_type'              => 'post',
        'posts_per_page'         => '9',
        'order'                  => 'ASC',
        'orderby'                => 'id',
      'meta_query'             => array(
          array(
              'key' => 'event_featured',
              'value' => '1',
              'compare' => '=='
          )
      )
    );

我没有在你的代码中看到你声明的帖子类型查询。将post类型添加到查询中,参见第一个数组后的第一行。试试这个:

    $args = array (
        'post_type'              =>'posttype',
        'posts_per_page'         => '9',
        'order'                  => 'ASC',
        'orderby'                => 'id',
      'meta_query'             => array(
          array(
            'key'     => 'event_startdate',
            'compare' => '>=',
            'value'   => $today
          ),
          array(
            'key'     =>  'event_enddate',
            'compare' =>  '<=',
            'value'   => $today
          )
      )
    );
    $query = new WP_Query( $args );
    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {

找到问题。我用PHP创建了这些字段。使用管理界面来创建它们对我来说很有效。因此,如果你也在为此挣扎,删除php中的字段,并在Wordpress中重新创建它们。

如果你想在你的主题中包含它们,使用ACF中的导出工具将这些字段导出到PHP代码中。

相关内容

  • 没有找到相关文章

最新更新