基于 ACF Datepicker 值的 Wordpress 查询导致没有帖子

Wordpress query based on ACF Datepicker values results in no posts

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

这是我得到的:

<?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 时所有 post 都会显示。可能是什么问题?我尝试了一些不同的日期格式(硬编码),但这似乎并没有解决它。 post 也在线尝试了其他解决方案,但 none 似乎解决了这个问题。

编辑:同时开始处理另一个查询,这次使用 event_featured,一个 TRUE/FALSE 字段。代码与前面提到的代码相同,除了 args。 return post 也不是:

     $args = array (
        'post_type'              => 'post',
        'posts_per_page'         => '9',
        'order'                  => 'ASC',
        'orderby'                => 'id',
      'meta_query'             => array(
          array(
              'key' => 'event_featured',
              'value' => '1',
              'compare' => '=='
          )
      )
    );

我在你的代码中没有看到你在哪里声明了要查询的 post 类型。将 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 代码。