如果在提要URL中检测到查询字符串,则可以通过重写主查询结果来实现。?top_ten
为前十名添加查询变量:
function my_query_vars( $query_vars ) {
    $query_vars[] = \'top_ten\';
    return $query_vars;
}
add_filter( \'query_vars\', \'my_query_vars\' );
 为您的代码创建一个函数,以作为查询检索前十名
function my_top_ten_query($limit, $query) {
    if ( !function_exists( \'get_tptn_pop_posts\' ) ) {return $query;}
    $settings = array(
        \'daily\' => TRUE,
        \'daily_range\' => 30,
        \'limit\' => 20,
        \'strict_limit\' => FALSE,
    );
    $topposts = get_tptn_pop_posts( $settings ); // Array of posts
    $topposts = wp_list_pluck( (array) $topposts, \'postnumber\' );
    $args = array(
        \'post__in\' => $topposts,
        \'orderby\' => \'post__in\',
        \'posts_per_page\' => $limit,
        \'ignore_sticky_posts\' => 1 
    );
    $my_query = new WP_Query( $args );
    return $my_query;
}
 然后过滤主查询以检查查询字符串,并返回前十个查询,而不是标准提要查询:
function my_feed_posts_filter( $query ) {
    // only for feeds
    if ( $query->is_feed && $query->is_main_query() )  {
        // check if the top_ten variable is set 
        if ( isset( $query->query_vars[\'top_ten\'] ) 
                && ! empty( $query->query_vars[\'top_ten\'] ) ) {
            // return your top ten query object instead
            return my_top_ten_query($query->query_vars[\'top_ten\'], $query);
        }
    } 
    return $query;
}
add_filter( \'the_posts\', \'my_feed_posts_filter\' )
 解决方案改编自
this answer on custom feed queries.