您可以通过以下方式添加路径add_rewrite_endpoint
, 然后通过pre_get_posts
行动下面是一个概念验证示例,它改变了posts_per_page
什么时候domain.com/highest-rated/
请求:
// add the endpoint
function wpa85664_add_endpoint(){
add_rewrite_endpoint( \'highest-rated\', EP_ALL );
}
add_action( \'init\', \'wpa85664_add_endpoint\' );
// check if the endpoint is in the current request
// and alter the query accordingly
function wpa85664_check_endpoint( $query ){
if( array_key_exists( \'highest-rated\', $query->query_vars ) )
$query->set( \'posts_per_page\', -1 );
}
add_action( \'pre_get_posts\', \'wpa85664_check_endpoint\' );
您可以使用此方法更改任何相关的查询变量,例如元查询,以按评级对帖子进行排序。