为作者个人资料和按作者列出的帖子列表创建不同的页面

时间:2014-01-21 作者:Godwin

我目前正在开发的网站包括每个作者的个人资料页面,以及一种搜索特定作者帖子的方法。所以我们会在/author/author-name/ 它只显示该作者的帖子列表和类似的页面/author/author-name/profile/ 显示扩展用户信息,但不显示帖子。

默认情况下,Wordpress包括author.php 显示一些基本用户信息和作者最近发表的文章的模板。该文件位于/author/author-name/. 在寻找构建用户配置文件的推荐方法时,我发现的所有内容都建议更改此文件并使用相同的URL,但我们希望两者都使用。

我能想到的实现这一点的唯一方法是允许页面接受一个参数,以便/author/author-name/?profile=1, 在中重写它.htaccess 所以它看起来像/author/author-name/profile/. 然后更改author.php 检查此参数并使用单独的模板。我希望避免这样的方法,尽可能多地使用Wordpress rails。

有没有插件或其他Wordpress认可的方法可以用来解决这个问题?(顺便说一下,我们正在运行3.8)。

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

我会使用add_rewrite_endpoint() 具有EP_AUTHORS 目标这应该考虑URL和查询var,以干净地检查[相对:)]。

SO网友:Godwin

以防你不熟悉Rarst的答案add_rewrite_endpoint, 这是我想到的。

创建名为的模板文件author-profile.php. 在您的functions.php 文件添加以下内容:

add_action(\'init\', \'theme_add_author_profile_endpoint\');
add_action(\'template_redirect\', \'theme_author_profile_template_redirect\');

function theme_add_author_archive_endpoint() {
    add_rewrite_endpoint(\'profile\', EP_AUTHORS);
}

function theme_author_archive_template_redirect() {
    global $wp_query;
    if (isset($wp_query->query_vars[\'profile\']) && is_author()) {
        include dirname( __FILE__ ).\'/author-profile.php\';
        exit;
    }
}
这应该允许/author/author-name/ 指向默认值author.php 模板时/author/author-name/profile/ 将被定向到author-profile.php.

结束

相关推荐

对Get_Author_Posts_url()使用与Auth.php不同的模板

我有一个客户希望每个作者档案有两页:第一页-有用户信息,社交媒体链接等使用作者。php用于此第二页-作者帖子列表我已经建立了一切,我的问题是:Is there a way to have get_author_posts_url() use a template other than author.php?