2

私が管理しているWordpress Webサイトの1つで、すべての投稿/ページ/その他がすべて404になるという問題が時々発生します。このようにパーマリンクをフラッシュすると、毎回問題が修正され、ユーザーには404が表示されなくなります。

add_action('template_redirect', 'flush_rewrite_rules_on_404');
function flush_rewrite_rules_on_404() {
    if( is_404() ) {
        flush_rewrite_rules();
    }
}

私のログは、ページ上の各画像だけでなく、ページ上でもフラッシュが実行されていることを示しています。

ユーザーが存在しない URL (例: www.mywebsite.com/mispelled-uri) にアクセスした場合でも、フラッシュが発生します。404 の正当なページに対してのみフラッシュが発生するようにフラッシュを制限したい場合 (たとえば、REQUEST_URI で有効な term-slug と post_names を確認する)、そのコードを実行するためにページを 1 ~ 3 回更新する必要があります。上記のコードサンプルから得られるシームレスなパフォーマンスを得る代わりに、404 をなくしてください。

IF() ブロックに追加のチェックを追加しただけで、なぜこのような大規模なパフォーマンスの問題が発生するのでしょうか?

どうすればこれを解決できますか?

(元のバグを解決するために数日を費やしました。「プラグインを更新/インストール/アンインストールしましたか? テーマ? バックアップから DB を復元しましたか?」というすべてのページを既に見てきました。他にやるべきことがある場合、顧客はこれにこれ以上時間を費やすことを望まない)

4

0 に答える 0