我一直在尝试调整此处描述的重写函数,但收效甚微:
我想实现的URL结构是
/学者/教员/简介/教员
其中/academics是博客,faculty是页面,profile是profile的子页面。如果使用此选项:
/学者/教员/简介?fid=教员
它显示教员档案,没问题。我想要的是将fid指定为一个重写,从URL中清除变量,只留下教员。
我重写了函数,因此add\\u rewrite\\u规则如下所示:
// Register the variables that will be used as parameters on the url
function add_my_var($public_query_vars) {
$public_query_vars[] = \'fid\';
return $public_query_vars;
}
add_filter(\'query_vars\', \'add_my_var\');
// Build the rewrite rules, for the extra parameter
function do_rewrite() {
add_rewrite_rule(\'(faculty/profile)/[/]?([^/]*)$\', \'index.php?pagename=profile&fid=$matches[1]\',\'top\');
}
add_action(\'init\', \'do_rewrite\');
// The parameter is now accessible
get_query_var(\'fid\') ;
我以为我是在准确地遵循指示,我已经刷新了permalink结构,但当我尝试使用新的URL时,它只会返回到/academy/faculty/profile,并且不会吐出任何内容,即使我添加了:
$profile2 = get_query_var(\'fid\') ;
到页面模板。
我的重写是否准确?你知道为什么在前面的例子中它会起作用,但在这里却不起作用吗?