首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Wordpress add_rewrite_rule重定向匹配不传递到自定义模板的变量

Wordpress add_rewrite_rule重定向匹配不传递到自定义模板的变量
EN

WordPress Development用户
提问于 2019-04-07 07:58:53
回答 1查看 388关注 0票数 0

My目标:

  1. 按照指南页面模板创建主题中的页面模板( page -expert.php)。
  2. 使用模板创建一个空白页。
  3. 上面的页面将显示特定用户的配置文件信息(由添加角色创建的自定义角色'expert‘)。
  4. 配置文件的默认Wordpress链接是http://mysite/author/expert-name。但我希望链接http://mysite/writer/expert/[expert-nickname]应该显示用户角色的配置文件“专家”用户专家-昵称。

它或多或少是添加_重写_规则的一种实现。

What I:

相应地创建模板文件、角色和页面(page_id=211、slug=http://[mysite]/writer/expert)。

重定向管理(通过function.php中的类function.php启动)和更新的permalink设置:

代码语言:javascript
运行
复制
    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)

  1. $wp->query_vars
  2. $_REQUEST
  3. $wp_query->query_vars
代码语言:javascript
运行
复制
$exp_slug= get_query_var('expert');

ia空白

代码语言:javascript
运行
复制
    add_filter('request', array($this, show_req_vars()));
    function show_req_vars($vars)
    {
    print_r($vars);
    return $vars;
    }

产出:

阵列( => 211 )

我做错了什么?

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2019-04-07 09:09:07

$query中删除add_rewrite_tag参数。您的重写标记注册将如下所示:add_rewrite_tag('%expert%', '([^&]+)');

重写规则中的短语可能是'^expert/([^/]+)/?',但这不是问题的原因。

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/333700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档