我的问题与author-specific-urls-in-wordpress 和mapping-multiple-urls-to-same-page-in-wordpress. 我遵循了以下步骤
创建了一个自定义页面(writer.php)
从仪表板关联该页面,因为所有writer都没有在word press中注册,所以WP内置的author功能对我没有任何帮助。所以我创建了一个自定义URL$author_page_url = home_url( \'/\' );
$author_page_url .=\'writer/\'.$author_id[0];
在哪里author_id
正在从数据库中提取。我的函数中有以下条目。phpadd_action(\'init\', \'add_my_rule\');
function add_my_rule() {
global $wp;
$wp->add_query_var(\'args\');
add_rewrite_rule(\'writer\\/(.*)\',\'index.php?pagename=writer&
args=$matches[1]\',\'top\');
}
还有作家。php我正在做类似的事情$params = get_query_var(\'args\');
$ppp = get_option(\'posts_per_page\');
if (!is_paged()) {
$custom_offset = 0;
} else {
$custom_offset = $ppp*($paged-1);
}
$args = array( \'meta_key\' => \'writer\', \'meta_value\' => $params
,\'numberposts\' => $ppp,\'offset\' => $custom_offset);
$authorposts=get_posts($args);
我的问题是当我点击以下URL时http://localhost/blog/wordpress/writer/umesh-awasthi
WP给我404错误。而URLhttp://localhost/blog/wordpress/writer/
工作非常好。最初我开发这个时,它工作得很好,现在我不知道出了什么问题。有人能帮我调试这个问题吗。提前谢谢。
Update
我最初的怀疑是重写规则不起作用,但不确定原因
最合适的回答,由SO网友:Rob Vermeer 整理而成
如果我删除换行符,您的示例就会生效。
所以这应该是可行的:
function add_my_rule() {
add_rewrite_tag("%args%", \'([^/]*)\', \'args=\');
add_rewrite_rule(\'writer/([^/]*)\',\'index.php?pagename=writer&args=$matches[1]\',\'top\');
}
add_action(\'init\', \'add_my_rule\');