【问题标题】:add_rewrite_rule() issue with parent/child/child page父/子/子页面的 add_rewrite_rule() 问题
【发布时间】:2021-11-28 15:01:04
【问题描述】:

我有一个父/子和另一个父/子/子页面。我有两个页面的 2 个单独的页面模板和以下 add_rewrite_rule() 代码:

add_rewrite_rule( '^user/dashboard/([^/]*)/?’, 'index.php?pagename=user/dashboard&profile=$matches[1]', 'top' );

add_rewrite_rule( '^user/dashboard/billing/([^/]*)/?’, 'index.php?pagename='user/dashboard/billing&profile=$matches[1]', 'top' );

第一个(即父母/孩子)工作正常,但第二个(即父母/孩子/孩子)不工作。这意味着当我转到 父/子/子 页面时,它使用的是父/子页面的模板,而不是分配给自身的模板。

如果我注释掉第一行 add_rewrite_rule() ,它会按预期工作。似乎第一个覆盖了第二个。

我已尝试通过转到设置 > 永久链接手动刷新重写规则。

我什至尝试更改重写规则的顺序,即我尝试在 parent/child 规则之前注册 parent/child/child 路径,然后刷新规则手动。但这也无济于事。

感谢任何帮助。

【问题讨论】:

    标签: wordpress redirect url-rewriting url-routing


    【解决方案1】:

    你需要改变顺序,先来更具体的 add_rewrite_rule ,然后是通用的,试试这个

       add_rewrite_rule( '^user/dashboard/billing/([^/]*)/?', 'index.php?pagename=user/dashboard/billing&profile=$matches[1]', 'top' );
       add_rewrite_rule( '^user/dashboard/([^/]*)/?', 'index.php?pagename=user/dashboard&profile=$matches[1]', 'top' );
    

    更改后,您必须在设置中关闭/打开永久链接以清除缓存。

    【讨论】:

    • 嗨,我已经试过了。您可以在我已经提到的详细信息的末尾看到它(:
    • 我在我的演示及其作品上尝试了这个,在您的网站上安装查询监视器插件并检查计费页面上的哪些重写工作
    • 好的,让我再试一次..谢谢!
    • 谢谢你,你救了我!
    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    相关资源
    最近更新 更多