将变量作为固定链接URL传递

时间:2014-04-30 作者:Matt

我一直在尝试调整此处描述的重写函数,但收效甚微:

我想实现的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\') ;
到页面模板。

我的重写是否准确?你知道为什么在前面的例子中它会起作用,但在这里却不起作用吗?

1 个回复
SO网友:Milo

使用时pagename 使用父/子页面查询var,该值应反映父/子关系,否则将导致重定向。而不是:

pagename=profile
尝试:

pagename=faculty/profile

结束

相关推荐

HTML Redirect to WP pages

我有一些预定义的链接,需要重定向到WP安装中的真实URL。不幸的是,我别无选择,只能使用提供给我的这些URL。格式为:http://mysite.com/redirect.html?p=pagenameWP安装在mysite的根目录下。com。我需要获取pagename查询变量,它不会与页面URL直接匹配,并将其重定向(301)到WP permalink。我尝试了几件事。htaccess具有重写功能,但运气不佳,这主要是因为还有WP permalinks重定向。有人以前做过这件事,或者知道最好的方法吗?更