【问题标题】:Using wordpress and advanced custom fields, how can I use a subfield for my meta query?使用 wordpress 和高级自定义字段,我如何使用子字段进行元查询?
【发布时间】:2020-04-24 07:54:11
【问题描述】:

我正在使用带有 Advanced Custom Fields Pro 插件的 Wordpress,我正在尝试获取所有日期字段在今天之后的帖子。我查看了这个示例https://www.advancedcustomfields.com/resources/date-picker/,除了我的字段是转发器字段的子字段之外,它工作正常。我在为此进行元查询时遇到了一些麻烦。我尝试将_%_ 用于子字段,但后来我在这里读到https://support.advancedcustomfields.com/forums/topic/meta_query-for-a-group-field-sub-field/,我可以在子字段中使用下划线。但是帖子仍然没有任何结果。我尝试从一个帖子中检查日期,它似乎工作正常。我还在这里读到advancedcustomfields.com/resources/date-picker,日期始终以 Ymd 形式存储在数据库中。我尝试对另一个不是子字段且有效的字段进行此操作,所以问题出在我认为的子字段'key' => 'date_startdate',

我将日期选择器用作子字段。

function do_get_upcoming($atts = [])
    {
        $defaultLimit = 8;
        $limit = $atts["limit"] != null ? $atts["limit"] : $defaultLimit;

        $today = date('Ymd');

        $posts = get_posts(array(
            'numberposts'   => $limit,
            'post_type'     => 'events',
            'meta_query' => array(
                 array(
                    'key'     => 'date_startdate',
                    'value'   => $today,
                    ‘type’ => ‘DATE’
                    'compare' => '>',
                )
            ),
        ));

        echo count($posts);
    }
    add_shortcode('get_upcoming','do_get_upcoming');

screenshot subfield

【问题讨论】:

  • 它与另一个字段一起工作的事实表明这不是编码问题!您如何在 ACF 字段管理中检查您的日期格式?我记得有一个显示格式和一个计算格式。
  • 没有计算选项,从我用 acf pro 阅读的内容来看,在处理查询时它总是 Ymd。我在问题中添加了屏幕截图。
  • 这里是advancedcustomfields.com/resources/date-picker 请注意,该值始终保存为数据库中的 Ymd (YYYYMMDD)。

标签: wordpress advanced-custom-fields


【解决方案1】:

我找到了解决方案。通过添加_0_ 可以访问子字段,因此您将获得'key' => 'date_0_startdate'

【讨论】:

  • 我的错,我遇到这样的问题已经有一段时间了!我通过查看数据库解决了它。我的客户想将这些日期与其他字段一起存储到一个单独的 Sqlite 数据库中......他们如何将其存储在选项表中很奇怪。在 Mysql 和 Sqlite 之间进行同步时,这让我的任务更具挑战性。
猜你喜欢
  • 1970-01-01
  • 2013-11-25
  • 2015-02-16
  • 2016-06-25
  • 2021-04-30
  • 2018-02-04
  • 2018-01-21
  • 2018-09-02
  • 1970-01-01
相关资源
最近更新 更多