元查询值 >=(当前日期)不适用于 ACF

Posted

技术标签:

【中文标题】元查询值 >=(当前日期)不适用于 ACF【英文标题】:Meta Query value >= (current date) not working with ACF 【发布时间】:2021-01-10 14:26:53 【问题描述】:

我正在处理一个包含 ACF 字段的循环。 我想要做的是循环我的自定义帖子类型,但是当日期已经过去时,循环必须不显示已经发生的事件。

我的代码如下:

<?php
$today = date('Ymd');
$posts = get_posts(array(
  'post_type'=>'rasweekenden',
  'post_status'=>'publish',
  'posts_per_page'=>5,
  'meta_query' => array(
      array(
        'key' => 'eventdatum',
        'value' => $today,
        'type' => 'DATE', // specify it for numeric values
        'compare' => '>='
      )
    ),
  'meta_key' => 'eventdatum',
  'orderby' => 'meta_value_num',
  'order' => 'ASC',
));

if($posts)

    echo '<ul>';

    foreach($posts as $post)


  $date_event = date("Ymd", strtotime(get_field('eventdatum', get_the_ID())));
  $date_today = date('Ymd');


  if ($date_event >= $date_today)

    
    the_field('rasweekend_heading', $post->ID);
    


    echo '</ul>';


?>

eventdatum 是分配给我的自定义帖子类型 rasweekenden 的 ACF 字段。 这是使用来自 ACF 的 Datepicker 完成的,输出值为 Ymd

我认为这与我的meta_query 有关,但我不确定。

谁能帮帮我。

如果您需要更多信息,请告诉我。

【问题讨论】:

我认为get_the_ID() 函数不适用于get_posts @ParthaviPatel 感谢您的快速回复。我已经尝试修复此问题 2 天,但我找不到任何东西。你有什么想法吗? 您是否尝试过从元查询中删除 type @HowardE 没有成功,但建议很好 你也可以试试改成这个'orderby' =&gt; 'meta_value meta_value_num' 【参考方案1】:

因为您的查询正在获取帖子。我会从循环中删除 if 语句,因为您已经在查询中这样做了。

if($posts) 
    echo '<ul>';
    foreach($posts as $post) 
        echo '<li>';
        the_field('rasweekend_heading', $post->ID);
        echo '</li>;
    
    echo '</ul>';

【讨论】:

以上是关于元查询值 >=(当前日期)不适用于 ACF的主要内容,如果未能解决你的问题,请参考以下文章

与当前日期比较时,通过多个元键查询帖子不起作用

:nth-child(even/odd) 不适用于 acf

swift coredata 查询不适用于今天的日期

解密不适用于在加密数据上使用解密值查询的记录

带有 UIControlEvents.valueChanged 的​​日期选择器不适用于第一个值更改事件

SQL 查询,其中 Mydate 应距当前日期不到 2 年