0
我正在使用ACF Pro。我有一个过滤器设置,告诉ACF只显示发布的帖子。ACF - 如何从关系字段中排除超过一年的帖子?
function acf_relationship_filter($args, $field, $post_id) {
$args['post_status'] = array('publish');
return $args;
}
add_filter('acf/fields/relationship/query/name=featured_items', 'acf_relationship_filter', 10, 3);
这工作就好了。不过,我想扩展这个函数,以便只显示上一年制作的帖子;因此应该排除旧职位。
任何人都有想法如何做到这一点?
我需要在过滤器不知何故应用以下测试:
strtotime($args['post_date']) > strtotime('-365 day');
比较这样的结果对$args['post_date']
当然不会工作,因为我一个布尔结果进行比较的日期字符串。
谢谢!
SOULTION:
我想通了这一点,任何人谁可能会遇到此相同的要求。可以使用$args['date_query']
。
function acf_relationship_filter($args, $field, $post_id) {
$args['post_status'] = array('publish');
$args['date_query'] = array(
'after' => date('Y-m-d G:i:s', strtotime('-1 year')),
'inclusive' => true
);
return $args;
}
add_filter('acf/fields/relationship/query/name=featured_items', 'acf_relationship_filter', 10, 3);
这将只显示一年前从今天开始的帖子。
希望它可以帮助那里的人!
WP文件的日期参数WP_Query:http://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters
这导致我找到了答案的正确路径,但并不完全是确切的工作解决方案。我会在我的问题中发布。如果您想以我发布的内容更新您的答案,我会接受答案,因为您已经走上正轨。 –
很高兴听到你有所进步,但请注意'after' /'before'参数支持'strtotime'字符串,所以我们不应该需要'Ymd G:i:s'格式,我想''1年前''和''-1年''应该给出相同的结果@MichaelGiovanniPumo – birgire
啊,对了。好,很酷。那么我会接受这个答案。谢谢你的帮助! –