zoukankan      html  css  js  c++  java
  • 板邓:WordPress中自定义、重置URL伪静态规则(rewrite rules)

    使用add_rewrite_rule

      现在我想把 https://www.iteblog.com?iteblog_hadoop URL地址修改成 https://www.iteblog.com/wechat?iteblog_hadoop,这种情况下我们可以使用 add_rewrite_rule($regex, $redirect, $after) 函数来实现,如下:

    function iteblog_rewrite_rule() {
      add_rewrite_rule('wechat$', 'index.php?iteblog_hadoop'', 'top');
    }
    add_action('init', 'iteblog_rewrite_rule');

    add_rewrite_rule 函数中最后一个参数是可选的,只能是top或者bottom,意思是我们这个自定义规则是放在已有规则最前面(top)还是最后面(bottom);如果放在已有规则最前面,那么Wordpress会先使用这个rewrite rules;如果放在已有规则的最后面,那么Wordpress会优先使用已有的规则。这个参数默认值是bottom,我们需要根据自己的需求设置。

    我们把上面的代码添加到 functions.php 文件里,保存。现在你访问 https://www.iteblog.com/wechat?iteblog_hadoop 页面不出意外的话肯定是返回的404!这是因为我们添加了自己的rewrite rules,需要到后台依次点击 设置 -> 固定链接,然后点击里面的 保存修改 按钮,这时候我们的rewrite rules就已经添加进系统了,现在你可以访问 https://www.iteblog.com/wechat?iteblog_hadoop 页面了。

    使用rewrite_rules_array

    但是如果你需要自定义多条rewrite rules,add_rewrite_rule函数就不行了,我们需要使用rewrite_rules_array了,这属于Wordpress内置的hook,我们可以在里面添加很多条规则,使用如下:

    function add_rewrite_rules($aRules){
            $aNewRules = array(
                    'wechat$' => 'index.php?iteblog_hadoop'
            );
            $aRules = $aNewRules + $aRules;
            return $aRules;
    }
    add_filter('rewrite_rules_array', 'add_rewrite_rules');

    我们可以在 $aNewRules 是一个数组,所以可以在其中添加任意数量的规则。

    移除已有的规则

    我们也可以利用这个钩子来移除已经存在的规则,使用如下:

    add_filter('rewrite_rules_array', 'kill_feed_rewrites');
    function kill_feed_rewrites($rules){
     
        foreach ($rules as $rule => $rewrite) {
     
            if ( preg_match('/^foo.*(feed)/',$rule) ) {
                unset($rules[$rule]);
            }
     
        }
     
        return $rules;
    }

    好了,现在你可以自由地自定义URL规则了。

    板邓个人博客:http://8dseo.com
  • 相关阅读:
    找零钱「Usaco2006 Dec」
    才艺表演「Usaco2018 Open」
    潜入行动「JSOI2018」
    任务安排「SDOI2012」
    BZOJ2298: [HAOI2011]problem a
    JZOJ 5818
    JZOJ 3493
    JZOJ 3470
    JZOJ 5781
    JZOJ 5778
  • 原文地址:https://www.cnblogs.com/xbdeng/p/8732948.html
Copyright © 2011-2022 走看看