您可以使用pre_get_posts
钩子以修改主查询:
add_action( \'pre_get_posts\', \'filter_old_posts\' );
function filter_old_posts($query){
if( !is_admin() && $query->is_main_query()){
add_filter(\'posts_where\', $callback = function( $where = \'\'){
$where .= " AND post_date > \'" . date(\'Y-m-d\', strtotime(\'-2 years\')) . "\'";
return $where;
});
add_filter(\'getarchives_where\', $callback );
}
}
这将过滤主要的查询帖子,以返回超过2年的帖子。
还有一个使用getarchives_where
筛选存档小部件结果。