web-dev-qa-db-ja.com

誰かがWordpressのキャッシュを説明できますか?そして、私のシナリオで一番良いことは何ですか?

購読者と編集者という2つの基本的なユーザーグループを持つWebサイトを作成しています。ボットはwp_insert_post()を使用してカスタムフォームを介して投稿を作成できますが、編集者は投稿を非公開としてマークすることが許可され、事実上他の編集者間でのみ単一の投稿を共有します。

Wordpressはすでに編集者以下の誰かのために非公開投稿をループから除外しているので、これが私のキャッシングにどのように影響するのか疑問に思います。非公開の投稿も含まれるエディターへの投稿。

私が使っているループの中で:

  • current_user_can():購読者/編集者/管理者に基づいて投稿コンテンツを含めるか除外するか
  • get_post_status():投稿が "非公開"か "公開"かに基づいて投稿内容を含めるか除外するか
  • get_post_meta():さまざまなカスタムフィールドを取得する

今私はindex.phpに0.198秒で26のクエリを使い、single.phpに0.193秒で28のクエリを使っています。

これをどのように効果的にキャッシュするのでしょうか。キャッシングプラグインはまだありませんが、xCacheにアクセスできます。

どうもありがとう!

3
FLX

だからあなたの問題はあなたが2ループをキャッシュしたいということです、WordPressはループをキャッシュするためにボンネットの後ろにいくつかのことをします。 W3 Total Cache のようにプラグインを有効にすることもできますが、機能によってはデータのキャッシュを実行する必要がある場合に利用できる機能/メソッドがいくつかあります。これらの文書はドキュメントに没頭することなく「システム」をキャッシュします。

そのため、チェックアウトする必要がある可能性がある3つの基本的な関数があります。まず最初に、 wp_cache_set が必要です。これは、キャッシュ情報とキーのグループという概念を利用します。 wp_cache_get で後から情報を入手し、その情報が完成したら、あとでそれが不要になると確信している場合は、 を使用します。 ] wp_cache_delete 、キャッシング「システム」からそのデータを消去します。

頭を上げると、これらの関数は永続的なキャッシュではなく、新しいリクエストを実行すると削除されますが、メモリに保存されるため非常に高速なので、後でデータベースから使用する情報を格納します。

この関数が定義されている場合は、テキスト内にtracへのリンクを追加しましたが、必要に応じて WP_Object_Cache 参照を調べてそれらの使用方法を確認してください。そしていくつかの良い勧告もあります。

0
Webord