ACF - 如何从关系字段中排除超过一年的帖子?
ACF - How do I exclude posts older than a year from relationship field?
我正在使用 ACF Pro。我有一个过滤器设置,告诉 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']
上比较此结果当然行不通,因为我会将布尔结果与日期字符串进行比较。
谢谢!
灵魂:
我为可能遇到同样要求的任何人解决了这个问题。
只需使用$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
如果这些是 WP_Query
的参数,那么您可以尝试 date_query
输入参数:
$args['date_query'] = [
[
'after' => '1 year ago', // <-- your strtotime string
'inclusive' => true,
]
];
在您的回调中。
我正在使用 ACF Pro。我有一个过滤器设置,告诉 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']
上比较此结果当然行不通,因为我会将布尔结果与日期字符串进行比较。
谢谢!
灵魂:
我为可能遇到同样要求的任何人解决了这个问题。
只需使用$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
如果这些是 WP_Query
的参数,那么您可以尝试 date_query
输入参数:
$args['date_query'] = [
[
'after' => '1 year ago', // <-- your strtotime string
'inclusive' => true,
]
];
在您的回调中。