WordPress 自定义路由和 posts 定义的路由重复了怎么办?

如果自定义路由和 WordPress 默认的 posts 路由发生冲突,可能会导致请求无法正确解析或页面加载出现错误。为了避免这种情况,可以在定义自定义路由时尽量避免使用与 WordPress 默认路由相同或相似的 URL 结构。

如果仍然出现冲突,可以使用以下几种方法进行解决:

  1. 调整自定义路由的规则顺序: 确保自定义路由规则在默认路由规则之前添加。这样,当 URL 匹配自定义路由时,会优先匹配自定义规则。使用 add_rewrite_rule 时,可以通过第三个参数设置为 'top' 来确保自定义规则被优先匹配。

    add_action('init', 'custom_rewrite_rule');
    function custom_rewrite_rule() {
        add_rewrite_rule('^custom-data/', 'index.php?custom-data=1', 'top');
    }
  2. 使用唯一的自定义路由前缀: 在定义自定义路由时,使用唯一的前缀来避免与默认路由冲突。例如,可以在自定义路由前添加一个独特的标识符:

    add_action('init', 'custom_rewrite_rule');
    function custom_rewrite_rule() {
        add_rewrite_rule('^myplugin/custom-data/', 'index.php?custom-data=1', 'top');
    }
  3. 检查并调整冲突的路由: 在定义新的自定义路由之前,检查现有的路由规则,确保不会重复。可以使用 flush_rewrite_rules 函数在路由规则更改后刷新路由缓存:

    add_action('init', 'custom_rewrite_rule');
    function custom_rewrite_rule() {
        add_rewrite_rule('^myplugin/custom-data/', 'index.php?custom-data=1', 'top');
        flush_rewrite_rules();
    }

通过以上方法,可以有效避免自定义路由与 WordPress 默认路由发生冲突。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇