正在尝试使用特定于作者的URL创建特定于作者的页面,它工作正常,但创建此URL时没有考虑以下两个因素
作者名称冲突(类似名称)
要添加到作者页面的分页选项(对于他发布的帖子)这是我的初始规则
function add_my_rule() {
global $wp;
$wp->add_query_var(\'args\');
add_rewrite_rule(\'writer\\/(.*)\',\'index.php?pagename=writer&args=$matches[1]\',\'top\');
/*global $wp_rewrite;
$wp_rewrite->flush_rules();*/
}
add_action(\'init\', \'add_my_rule\');
这是一个URL的工作文件
www.myblog.com/writer/umesh-awasthi ,
但可能会有更多同名作者,这将产生一个问题。所以我打算把博客作者的URL
www.myblog.com/writer/001/umesh-awasthi
哪里001
是始终唯一的用户id。
第二个问题是分页,因为我可以在作者页面上创建分页,但当用户单击第二个页面时,URL将显示为
http://localhost/blog/wordpress/writer/umesh-awasthi/page/2/
因此,根据我的URL重写规则,我将获得以下数据作为参数umesh-awasthi/page/2
这意味着现在我的查询将无法正常工作,因为它希望作者名称为umesh-awasthi
并将作为umesh-awasthi/page/2
我的问题是,我是否可以重写规则,以便以以下方式获取三个不同变量中的数据
用户ID作者姓名页码(如果存在)是WP的新页码,我不知道如何实现这一点,请提前感谢
最合适的回答,由SO网友:Rob Vermeer 整理而成
function add_my_rule() {
global $wp;
$wp->add_query_var(\'args\');
$wp->add_query_var(\'arg_username\');
add_rewrite_rule(\'writer/([0-9]+)/([^/]*)/page/([0-9]+)\',\'index.php?pagename=writer&args=$matches[1]&arg_username=$matches[2]&paged=$matches[3]\',\'top\');
add_rewrite_rule(\'writer/([0-9]+)/([^/]*)\',\'index.php?pagename=writer&args=$matches[1]&arg_username=$matches[2]\',\'top\');
/*global $wp_rewrite;
$wp_rewrite->flush_rules();*/
}
add_action(\'init\', \'add_my_rule\');
这应该可以奏效。一个writer/user\\u id/username的重写规则(username不在重写规则中使用,但必须使其工作。第二个重写规则相同,只是它添加了分页。
编辑:在上面的代码中添加了arg\\u用户名。