元查询值 >=(当前日期)不适用于 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' => '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的主要内容,如果未能解决你的问题,请参考以下文章