4

我有一个名为“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 非常了解,但这是我第一次尝试重写规则。

谢谢!

4

2 回答 2

6

尝试

add_action( 'init', 'addMyRules' );
function addMyRules(){
    add_rewrite_rule('^people/([^/]*)/?','index.php?name=$matches[1]','top');
    add_rewrite_tag('%name%','([^&]+)');
}
于 2013-07-09T11:24:58.543 回答
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%','([^&]+)');
}
于 2015-07-08T13:15:15.280 回答