My目标:
它或多或少是添加_重写_规则的一种实现。
What I:
相应地创建模板文件、角色和页面(page_id=211、slug=http://[mysite]/writer/expert)。
重定向管理(通过function.php中的类function.php启动)和更新的permalink设置:
class myExpert extends myWriters{
public function __construct(
add_filter('init', array($this, 'set_expert_link_base'));
add_filter("expert_link", array($this, 'fix_expert_link')); //For now, this changes the link of all author profiles. I'll look into it later.
}
function set_expert_link_base()
{
add_rewrite_tag('%expert%', '([^&]+)', 'expert=');
add_rewrite_rule('^expert/([^/]*)?','index.php?page_id=211&expert=$matches[1]','top');
}
function fix_expert_link($link)
{
if($link){
return str_replace("author","expert",$link);
}
}
}问题:
当调用http://mysite/writer/expert/[expert-nickname]时,会发生对页面的重定向,但是get变量不会在page-expert.php中得到处理。以下内容不包含任何索引“expert”。(全球$wp_query和$wp)
$wp->query_vars$_REQUEST$wp_query->query_vars$exp_slug= get_query_var('expert');ia空白
add_filter('request', array($this, show_req_vars()));
function show_req_vars($vars)
{
print_r($vars);
return $vars;
}产出:
阵列( => 211 )
我做错了什么?
发布于 2019-04-07 09:09:07
从$query中删除add_rewrite_tag参数。您的重写标记注册将如下所示:add_rewrite_tag('%expert%', '([^&]+)');。
重写规则中的短语可能是'^expert/([^/]+)/?',但这不是问题的原因。
https://wordpress.stackexchange.com/questions/333700
复制相似问题