2016-07-29 1 views
0

をflush_rules:私は古いコーデックスの例から、それをコピーしてここに検索Wordpressのと、私はこのようないくつかのカスタムの書き換えルールを使用してサイト持って

add_action('init', array($this, 'add_my_rewrite')); 

public function add_my_rewrite() { 

    add_rewrite_tag('%get-continent%','([^&]+)'); 

    global $wp_rewrite; 
    $wp_rewrite->add_rule('something/([^/]*)/?','index.php?page_id=12345&get-continent=$matches[1]','top');   
    $wp_rewrite->flush_rules(false); 
} 

を。彼らはすべて正常に動作しますが、彼らはDB上で多くの更新を行います。

少しの研究をしたあと、コーデックスは、init(これは提供されていた例とは異なります)で発火させないこともわかりました。それは少しフック私はそれを発射する必要があります広いです。ちょっとした調査の結果、最適な時期はプラグインの有効化にあると思われます。

質問:プロダクトサイトでこれらのプラグインを無効にすることはできません。私は「init」を何か他のものに置き換えることができます。プラグインのアクティベーション(フックはまだわかりませんが)私がコメントアウトすると、うまく動作しますか?プラグインの起動以外で別の時間に起動する必要がありますか?それは誤って上書きされるのではないですか?私はプラグインを有効または無効にしないので、add_actionを簡単にコメントアウトできますか?

いつものように、皆さんありがとうございます。

+0

はい、フラッシュ書き換えルールをコメントアウトできます。実際に書き換えルールを手動でフラッシュすることができます。これは、管理者側でパーマリンクの設定を保存するときに発生します。 – David

答えて

0

私は$ wp_rewrite-> flush_rules(false)をコメントアウトしました。一部、私はこのままにしていた:

add_action('init', array($this, 'add_my_rewrite'), 10, 0); 

をして機能になった:

public function add_my_rewrite() { 

    add_rewrite_tag('%get-continent%','([^&]+)'); 

    global $wp_rewrite; 
    $wp_rewrite->add_rule('something/([^/]*)/?','index.php?page_id=12345&get-continent=$matches[1]','top');   
} 

それは理想的に私が活性化にフラッシュを発射する必要があるでしょうか、最終的にはちょうど/設定に入り、正常に動作しますパーマリンクとヒットを保存します。

関連する問題