WordPress中的作者特定URL

时间:2011-11-22 作者:Umesh Awasthi

继续这条线索Mapping multiple URLs to same page in WordPress

除了将类似模式的URL重定向到同一页面之外,还有其他方法吗。我们的目标是为我们的访客和其他作者提供特定于他们姓名/电子邮件的URL,以便他们可以将这些链接放在他们的网站/博客上,鼓励他们在我们的平台上阅读他们的访客帖子。

我可以很容易地确定,对于在我们的系统中没有用户配置文件或不想与我们创建配置文件的每个作者,应该有一个唯一的用户名,我们可以将其与他/她的帖子关联

e、 gif来宾作者的唯一用户名为uniqu-author URL应为

www.mysite.com/author/uniqueauthor
现在他可以把这个URL放在他/她的博客/网站上,当用户来到我们的系统时,我们可以将读者重定向到一个共同的作者页面,并可以提取uniqueauthor 从URL中,基于此用户名发出查询,并显示他/她的所有帖子。

任何输入都将对我的前进大有裨益

提前感谢

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

给你:

add_action(\'init\', \'wp_new_flush_rewrite_rules\'); //Run this action only ONCE if not you are looking at 2 extra db queries on every page load so dont forget to comment it out
function wp_new_flush_rewrite_rules() {
    global $wp_rewrite; 
    $wp_rewrite->flush_rules();
}

add_action(\'generate_rewrite_rules\', \'new_rewrite_rules\');
function new_rewrite_rules( $wp_rewrite ) {

    $post_type = \'post\';

    $new_rules = array(

        \'writer/(.+?)/page/?([0-9]{1,})/?$\' => \'index.php?post_type=\'.$post_type.\'&meta_key=writer&meta_value=\'.$wp_rewrite->preg_index(1).\'&paged=\'.$wp_rewrite->preg_index(2),
        \'writer/(.+?)/?$\' => \'index.php?post_type=\'.$post_type.\'&meta_key=writer&meta_value=\'.$wp_rewrite->preg_index(1),

    );

    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;   
    return $wp_rewrite;

}

add_filter(\'query_vars\', \'add_query_vars\');
function add_query_vars( $vars ){
    $vars[] = \'meta_key\';
    $vars[] = \'meta_value\';
    return $vars;
}

add_action(\'template_redirect\', \'template_redirect_intercept\');
function template_redirect_intercept(){

    global $wp_query;

    if ( $wp_query->get(\'writer\') && file_exists( TEMPLATEPATH . \'/author.php\' ) ){
        $wp_query->is_404 = \'\'; $wp_query->is_archive = 1; $wp_query->is_post_type_archive = 1; // This is to prevent 404 errors on page 2,3,4 if posts for that page dont exist.
        include( TEMPLATEPATH . \'/author.php\' );
        exit;
    }

}
它用于搜索帖子的“writer”元值并显示作者。php模板。

url看起来像mysite。com/writer/WRITERNAME/pagination也适用于mysite。com/writer/WRITERNAME/page/2/可以正常工作。

结束

相关推荐

Where are plugins located

我通常通过FTP下载和安装插件,但我已经从web界面安装了一些插件。我正在尝试将WP从远程移动到本地,我得到一个空白的WP管理屏幕。我认为是我的一个插件导致了这个问题。我已将wp-content/plugins重命名为wp-content/u-plugins,以禁用该文件夹中的所有插件。但我安装的插件没有出现在插件文件夹中,我认为这是导致wp管理屏幕空白的原因。请告知。谢谢