悩めるWEB担当者様のための最新ノウハウをお届け

WordPressでWP_Object_Cacheを使って、表示高速化しよう!

stephen-phillips-hostreviews-co-uk--zRNvl3EUdw-unsplash

WordPressを高速化する際に、必ずと言っていいほど考えるのがキャッシュすることです。
キャッシュを活用することで、表示を高速化することができます。

キャッシュにも様々なものがありますが、
その中でWordPressに標準で搭載されているWP_Object_Cacheというものがあります。

簡単にいうと、WP_Object_CacheはデータをキャッシュするためのWordPressクラスです。
大きな特徴としては、キャッシュされたデータがメモリに格納されるので、
使用する際に、データベースへクエリを発行することなく、キャッシュを使用することができます。

同じくWordPressに標準搭載されているTransients APIと違って
データベースへの接続をしないので、より負荷を減らすことができます。

ただし、プラグインやプログラムで特別な対応をしない限り、
1セッションの中でしかキャッシュされません。
Transient APIでは可能な、セッションをまたいだ利用ができないのがデメリットです。

1ページ内で同じクエリを複数回発行したいときなどに役立ちます。

例) get_postsで使用

使用方法の基本の考え方はTransient APIとも共通していて、
まずgetして、
なければクエリかクエリを発行する関数を使用して、キャッシュをメモリに格納します。

$get_contents = wp_cache_get(‘test’);
if(FALSE === $get_contents){
    $args = [
        // get_postsのパラメータを設定。
    ];
    $get_contents = get_posts($args);
    set_transients(‘test’, $get_contents);
}

なお、if文の条件には注意が必要な場合があります。
例えば、0が返ってくるクエリを発行する場合
if(empty($get_contents))とするとtrueになるので
データが取れているのにも関わらず、もう一度クエリを発行して、データをsetしようとします。

wp_cache_getはデータがないとfalseを返すので
「wp_cache_getがfalseの時に」と条件を設定するのがオススメです。

使用が終われば削除しておく

キャッシュは必要なくなれば削除しておきましょう。
WP_Object_Cacheによるキャッシュは基本1つのセッションの中でしか使用できず、かつ
メモリに格納されるので、
キャッシュしたデータの使用が終わっているのに消さないでいると、セッションの終わりまでメモリを使ったままになるので、削除してメモリを開放しておくとよいでしょう。

最後にキャッシュを使った行の後に

wp_cache_delete('test');

を記述して削除しておきましょう!
全て消してよい場合は

wp_cache_flush();

で全て一気に削除しておくのがオススメです。

まとめ

WP_Object_Cacheは基本的な使い方だと使うポイントが限定されるのですが、
メモリにデータが格納され、Transients APIより高速な処理が可能となります。
是非活用してみてください。

>>どうすれば、自社のサイトの「表示速度」が速くなるのか知りたい!
【期間限定】無料webサイト診断はこちら

当サイトではこの他にもWebに関するお役立ち情報を多数ご紹介しています。
Web担当者の方、デジタルマーケティングに興味がある方はぜひご覧ください。


広告運用やSEO、解析・Web製作など、当社はWebに関わるベストソリューションをご提供しています。お悩み・ご相談も受け付けておりますので下記のボタンからお気軽にご連絡ください。

関連記事

Keywords

無料 プロに相談する 無料 プロに相談する