什么是使用add_rewrite_rule删除(问号)的正确方法?

问题描述:

我有一个名为“人”与发生在一个叫做变量名的自定义模板页:什么是使用add_rewrite_rule删除(问号)的正确方法?

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

谢谢!

尝试

add_action('init', 'addMyRules'); 
function addMyRules(){ 
    add_rewrite_rule('^people/([^/]*)/?','index.php?name=$matches[1]','top'); 
    add_rewrite_tag('%name%','([^&]+)'); 
} 

你应该叫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%','([^&]+)'); 
}