2016-03-30 5 views
2

私は遅いWordPressサイトを最適化しようとしています。私は何か異常を見つけるためにQuery Monitorというプラグインを使います。Wordpressはrewrite_rulesオプションを複数回挿入しています

rewrite_rulesオプションがすべてのページ(50000文字以上)に挿入されていることがわかります。ここで

は、スタックトレースです:

add_option() 

- 
update_option() 
wp-includes/option.php:301 
WP_Rewrite->wp_rewrite_rules() 
wp-includes/class-wp-rewrite.php:1452 
WP_Rewrite->flush_rules() 
wp-includes/class-wp-rewrite.php:1774 
do_action('wp_loaded') 
wp-includes/plugin.php:525 

これらのファイルは、コアWordPressのファイルのように思えます。

これが正常な動作であるかどうかわかりません。私は正当な理由がないからだとは思わない。

あなたがこれまでに見たことはありますか?

+0

私はあなたが共有している出力で複数回挿入何かを見ていないよ... – rnevius

+0

はありません、オプションが(フラッシュ)する前に削除されたので、私は常に1行があるでしょう。私はちょうど彼らがなぜすべてのページを長いクエリを実行するのだろうかと思っています。私のパーマリンクが毎分変わるようなことはありません。 – FLX

答えて

1

ワードプレスはすべてのカスタム書き換えルールのキャッシュを保持します。プラグインやテーマによってこれらのルールが変更されることがありますが、WordPressはキャッシュが再生成されるまで実際に変更を認識しません。

これは手続き型関数ではありませんが、WP_Rewriteクラスの非静的メソッドです。 flush_rules()を呼び出すには、まず、WordPressの$ wp_rewrite globalを使用していることを確認し、それをメソッドと呼んでください(例は上記の「使用法」を参照)。

注:この同じ方法は、パーマリンクの設定を変更またはWordPress管理者に保存するたびに呼び出されるため、WordPressの管理者の[設定]> [固定リンク]画面で手動で書き換えルールを更新できます。

警告:この関数をパラメータなしで、またはパラメータがtrueで呼び出すと、.htaccessが上書きされ、カスタムルールが失われます。

//Ensure the $wp_rewrite global is loaded 
global $wp_rewrite; 
//Call flush_rules() as a method of the $wp_rewrite object 
$wp_rewrite->flush_rules(false); 
+0

htaccessにないキャッシュルールはなぜですか?なぜすべてのページが読み込まれますか? – FLX

関連する問題