Edit .htaccess on plugin deactivate

六眼飞鱼酱① 提交于 2019-12-12 04:37:07

问题


  1. I am trying to add rewrite rules in .htaccess during plugin activation. How can I edit/roll-back rewrite rules in .htaccess on plugin deactivation?

    function add_to_htaccess( $rules ) {
        $content = <<<EOD
        \nAddOutputFilterByType DEFLATE text/plain
        AddOutputFilterByType DEFLATE text/html
        AddOutputFilterByType DEFLATE text/xml
        AddOutputFilterByType DEFLATE text/css
        AddOutputFilterByType DEFLATE application/xml
        AddOutputFilterByType DEFLATE application/xhtml+xml
        AddOutputFilterByType DEFLATE application/rss+xml
        AddOutputFilterByType DEFLATE application/javascript
        AddOutputFilterByType DEFLATE application/x-javascript
        AddOutputFilterByType DEFLATE application/x-httpd-php
        AddOutputFilterByType DEFLATE application/x-httpd-fastphp
        AddOutputFilterByType DEFLATE image/svg+xml
        SetOutputFilter DEFLATE\n\n
        EOD;
        return $content . $rules;
    }
    add_filter('mod_rewrite_rules', 'add_to_htaccess');
    
    function myplugin_enable_flush_rules() {
        global $wp_rewrite;
        $wp_rewrite->flush_rules();
    }
    register_activation_hook( __FILE__, 'myplugin_enable_flush_rules' );
    
  2. The above function adds rewrite rules with in default WordPress rules lies between # BEGIN WordPress and # END WordPress. What could I do to add it separately (at the bottom of .htaccess ?)


回答1:


I have managed to do this at my own. Below is the function I have added.

function myplugin_deactivate() {
    // This will remove the rewrite rules
    remove_filter('mod_rewrite_rules', 'add_to_htaccess');

    global $wp_rewrite;

    // Flush the rewrite rules
    $wp_rewrite->flush_rules();
}
register_deactivation_hook( __FILE__, 'myplugin_deactivate' );


来源:https://stackoverflow.com/questions/25464243/edit-htaccess-on-plugin-deactivate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!