我有一个名为“People”的页面,其中包含一个自定义模板,该模板接收名为name的变量:
example.com/people/?name=FirstLast
我想要的是:
example.com/people/FristLast
我知道我需要使用add_rewrite_rule和add_rewrite_tag调用,但我不确定如何实现我想要的结果。我试过这个但是我得到了一个php错误:
add_rewrite_rule('^people/([^/]*)/?','index.php?name=$matches[1]','top');
add_rewrite_tag('%name%','([^&]+)');
我得到的错误是:“致命错误:在非对象上调用成员函数add_rule()”
我认为我走的是正确的道路。我对WP非常了解,但这是我第一次尝试重写规则。
谢谢!
答案 0 :(得分:6)
试
add_action( 'init', 'addMyRules' );
function addMyRules(){
add_rewrite_rule('^people/([^/]*)/?','index.php?name=$matches[1]','top');
add_rewrite_tag('%name%','([^&]+)');
}
答案 1 :(得分:0)
您应该在操作挂钩中调用add_rewrite_rule
,如下所示:
add_action('init', 'wpa8715_intit');
function wpa8715_intit() {
add_rewrite_rule('^people/([^/]*)/?','index.php?name=$matches[1]','top');
add_rewrite_tag('%name%','([^&]+)');
}