ADD_EXTERNAL_RULE-访问固定链接页面时删除的规则

时间:2015-11-20 作者:Mark Howells-Mead

在我的插件中,我连接了以下函数register_activation_hook. 规则添加正确。

public function add_rules(){
    global $wp_rewrite;
    $wp_rewrite->add_external_rule( \'(.+)\\.([0-9\\.\\-\\_]+)\\.(js|css)$\' , \'$1.$3\');
    $wp_rewrite->flush_rules();
    update_option($this->key.\'-plugin-version\', $this->version);
}
当我访问永久链接设置页面时,该规则再次被删除。保存永久链接设置时不会将其添加回。

这是由于Permalink page flushes all rules 打开时。(保存设置时除外。)

有没有办法阻止删除自定义规则?

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

保持激活功能不变,并为重写规则挂钩创建另一个:

function wpse_209303_rewrite_rules( $wp_rewrite ) {
    $wp_rewrite->add_external_rule( \'(.+)\\.([0-9\\.\\-\\_]+)\\.(js|css)$\' , \'$1.$3\');
}

add_action( \'generate_rewrite_rules\', \'wpse_209303_rewrite_rules\' );