私はプラグインを開発していて、プラグインのアクティブ化中にadd_rewrite_ruleとそれに続くflush_rewrite_rulesを使用しています。
プラグインの無効化では、追加したルールを削除するためにflush_rewrite_rulesを使用しています。
それでは、別のプラグインにも書き換えルールが追加されたとしましょう。他のプラグインがまだアクティブであっても、flush_rewrite_rulesを呼び出してもこの他のプラグインが削除されないのでしょうか。
編集:
覚えておくべきいくつかのメモ:
flush_rules()
はflush_rewrite_rules()
と同じことをします。彼の認められた答えの下のMiloのコメントを見てください。
バグトラッカー https://core.trac.wordpress.org/ticket/29118 には、ベストプラクティスを示しているだけでなく、 conitinuallyあなたのルールを追加するためにINITを使わなければならないという問題。
これが、リクエストごとのinit
アクションとプラグインのアクティブ化に書き換えルールを追加する必要がある理由です。
あなたのプラグイン無効化フックが実行されるとき、他のプラグインinit
フックは既に実行されているので、それらのルールは各リクエストの寿命の間それらを保存するグローバル変数に存在します。
書き換えルールをフラッシュすると、そのルールを長期的に保存するオプションが空になり、そのグローバル変数に含まれているものがすべて再入力されます。