解析/作者/到(所有作者的)页面或档案模板

时间:2012-08-26 作者:helgatheviking

我知道如何查询用户和创建作者列表,并且可以在页面模板中完成这项工作,就像下面描述的那样:Authors Page : A page of authors

我的问题是。。。。

有没有办法让我拥有www.site。com/作者解析到显示所有作者列表的页面?

我刚刚尝试创建一个带有“author”slug的静态页面,它是404s,这并不奇怪,我猜想b/c WP希望“author”后面会有什么东西,但什么都没有。

我是要创建一个端点(重写内容对我来说仍然很复杂),还是可以截取template\\u重定向并将其发送到我的自定义页面?如果能朝着正确的方向努力,我们将不胜感激。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

如果使用类似于设置重写规则的代码:

function ex_rewrite( $wp_rewrite ) {

    $feed_rules = array(
        \'author/?$\'    =>  \'index.php?author_page=author_page\'
    );

    $wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
    return $wp_rewrite;
}
// refresh/flush permalinks in the dashboard if this is changed in any way
add_filter( \'generate_rewrite_rules\', \'ex_rewrite\' );
后跟代码以添加author_page 作为有效的查询变量:

add_filter(\'query_vars\', \'add_my_var\');
function add_my_var($public_query_vars) {
    $public_query_vars[] = \'author_page\';
    return $public_query_vars;
}
然后,您可以在functions.php, 和电话get_template_part 调用“作者”模板并列出作者,例如:

add_action(\'template_redirect\', \'custom_page_template_redirect\');
fnction custom_page_template_redirect() {
    global $wp_query;
    $custom_page = $wp_query->query_vars[\'author_page\'];
    if ($custom_page == \'author_page\') {
        get_template_part(\'authorlisting\');
        exit;
    }
}
现在你只需要一个“authorlisting”。并刷新永久链接,使新规则生效。不过,我不会在重写规则的末尾添加任何内容,因为它可能会干扰现有的作者规则,所以要小心。此外,您可能对分页有问题,但我所能说的就是对其进行测试。

结束

相关推荐