web-dev-qa-db-ja.com

無効化中にプラグインによって生成された書き換えルールを削除する

私は以下のような簡単なプラグインを持っています

add_action('generate_rewrite_rules', function ($wp_rewrite)
{
    $wp_rewrite->rules = xxx + $wp_rewrite->rules;
});

if (is_admin())
{
    register_activation_hook( __FILE__, function() {
        flush_rewrite_rules(FALSE);
    });

    register_deactivation_hook(__FILE__, function() {
        flush_rewrite_rules(FALSE);
    });
}

このプラグインを有効にすると、書き換えルールが更新され、実際にはクールです。ただし、プラグインを無効にしたときに、書き換えルールを自動的に消去することはできません。

パーマリンク設定ページで手動でフラッシュする必要があります。

では、プラグインの無効化中に手動でフラッシュする必要がないようにプラグインコードを変更する方法を教えてください。

1
Yoga

書き換えルールを$ wp_rewrite-> rulesに追加していますが、無効化中にフラッシュを呼び出す前にそれらを削除していません。 flush_rewrite_rules()を呼び出す前に、$ wp_rewrite-> rulesに追加したものを削除するコードを無効化関数に追加してください。

2
Otto