web-dev-qa-db-ja.com

すべてのトランジェントを削除することに何らかの危険はありますか?

私はクライアントのための大きなサイトを持っています、そしてそれは機能上の多くの拡張機能を備えた本当にカスタマイズされたwordpressインストールであるので、私はキャッシングプラグインを使うことができません。

パフォーマンスを向上させるために、トランジェントを使用して多くのサイトを構築し(たとえば、ナビゲーション、すべてのマーカーを含むGoogleマップなど)、動的コンテンツを動的なままにします。

ここでの問題は、私が何かを変更した場合、現在の結果を見るために手動で特定のトランジェントを削除しなければならないことです。このサイトでは、異なるチャンネルから入力したときに異なるメニューやグーグルマップが表示されるので、各エリアに10回のトランジェントが必要です。

あなたは私が(トランジェントの名前のリストを使って)それらを一度に全部削除するような機能を作成しますか、それともただサイト上のすべてのトランジェントを削除しても大丈夫ですか?

それほど緊急ではありませんが、将来の開発のために、そのようなものに問題があるかどうか、またすべての過渡現象をどのように管理するかを知りたいと思います。

乾杯、フィッシュ

8
fischi

開発のために、私は常にWP_DEBUGtrueに設定して作業し、次のようにすることをお勧めします。

$key = 'transient_key';
if( !WP_DEBUG && ( false !== ($transient = get_transient($key)) ){

   /* Generate transient manually */
   $expiration = 24*60*60;//How long to keep for
   set_transient($key,$transient, $expiration);
}

一般に、トランジェントはデータベース内にあるとは決して想定されていないため、トランジェントを削除しても問題ありません。

5
Stephen Harris

あなたは物事がトランジェントをクリアしてリフレッシュするために更新されたときに実行されるさまざまなアクションをフックする必要があります。たとえば、ナビゲーションメニューが更新されると、wp_update_nav_menuアクションが起動されます。ナビゲーションメニューの一時的な表示を更新するには、それに関数をフックします。

1
Milo

変更が加えられたときにそれを確認する必要性がパブリックサイトに影響を及ぼさないように、開発環境で開発を行うことをお勧めします。

このアプローチを使用すると、サイトのパフォーマンスとユーザーエクスペリエンスへの影響を最小限に抑えながら、トラフィックの少ない時間で本番環境に展開/プロモートしてトランジェントをフラッシュできます。

1
Steve