我有一个到期日ACF字段\'post_end_date\'
已应用于多种岗位类型,包括\'post\'
.
我试图过滤掉整个网站上所有今天的日期大于值的帖子\'post_end_date\'
; 换句话说,这篇文章已经过期了。我查过了\'post_end_date\'
值返回与相同格式的数字date(\'Ymd\')
. e、 g。
echo date(\'Ymd\'); // returns 20161128 for today
echo get_field(\'post_end_date\'); // returns 20161127 for yesterday
我想最好的方法就是把今天的日期和\'post_end_date\'
价值这是我的代码:
function expiry_filter($query) {
if( !is_admin() && $query->is_main_query() ) :
$today = $expire = date(\'Ymd\');
if ( get_field(\'post_end_date\') ) :
$expire = get_field(\'post_end_date\');
endif;
$query->set( \'meta_query\', array(
array(
\'key\' => $expire,
\'value\' => $today,
\'compare\' => \'<\',
\'type\' => \'NUMERIC\'
)
));
endif;
}
add_action( \'pre_get_posts\', \'expiry_filter\' );
在这一点上,我只是想让它为\'post\'
岗位类型。我已检查是否使用了错误的“比较”运算符。我试过有没有$query->is_main_query()
有条件的以上代码的结果是所有帖子都被过滤掉了。
有人能告诉我我这里做错了什么吗?
提前谢谢。