您可以在模板之外通过pre_get_posts
操作和过滤器打开posts_where
.
第一个函数检查它是否是主查询和主页,如果是,则对查询的posts_where
条款
这个posts_where
函数将post selection限制为今天的日期减去7天,然后立即删除过滤器,这样就不会将其应用于页面上的任何其他查询。
你可以把这个放在你的主题里functions.php
文件,然后编辑模板以删除所有查询技巧,然后只运行普通循环。
function wpa85491_home_filter( $query ) {
if ( $query->is_home() && $query->is_main_query() )
add_filter( \'posts_where\', \'wpa85491_filter_where\' );
}
add_action( \'pre_get_posts\', \'wpa85491_home_filter\' );
function wpa85491_filter_where( $where = \'\' ) {
$where .= " AND post_date > \'" . date( \'Y-m-d H:i:s\', strtotime( \'-7 days\' ) ) . "\'";
remove_filter( \'posts_where\', __FUNCTION__ );
return $where;
}