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

WordPressでTransients APIを使って表示高速化する

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

キャッシュにも様々なものがあり、実装にもある程度の優先順位があります。
簡単にいえば、ページの一部よりページの全部をキャッシュできる方がいいわけです。

そもそもページキャッシュの方がいいけど、かといって他の対策をしないわけにもいかない。
またプラグインの使用が難しいなど、いろいろなパターンもあります。

そこでキャッシュを実現する1つの手法としてWordPressに標準で搭載されているTransients APIを使ってみるのも一手です。

大まかに説明するとget_postsなどクエリを用いる関数の実行結果をキャッシュとしてデータベースに格納することができます。
サイトに表示する際は、データベースへのクエリ発行自体はするものの、実行結果を格納したものを取り出すだけなので、複雑なSQLを発行する関数を使っている部分に使うと、いくらか負荷を削減できます。

セッションをまたいだ使用が可能で、ページの一部をキャッシュしたい場合などにオススメです。

無料の高速化診断、実施中!

「PageSpeed Insightsのスコアが低い…」「どう改善すれば良いかわからない…」
など、表示速度の課題を感じている方に、表示速度が遅いページ一覧と原因・改善施策がわかる無料の高速化診断を実施中!サイトの現状を知りたい方、改善施策が知りたい方は、ぜひお気軽にお申し込みください。

例 get_postsで使用。

例えば、get_postsで使うとこうなります。

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

基本はこれと同じように実装するのがオススメです。
まずは格納しているものがあれば取り出し
なければ新しく発行する、という流れです。

キャッシュがない場合は少しクエリが増えることになるので、
保存期間はある程度長めにしておくのがよいでしょう。

ページが更新された時の対応

ただ、これだとページが更新されたときにキャッシュが元のまま残ってしまう可能性があります。
なので、更新の際にキャッシュを削除する必要があります。

functions.phpに下記のコードを記述することで記事が更新された際に消去することができます。

function delete_cache(){
    delete_transient(‘test’);
}
add_action( 'save_post', 'delete_cache');

delete_postやedit_postのアクションフックも使うとより確実ですが、
save_postで更新全てに対応できるのでこれでよいかと思います。

もし、消すと同時に再設定したい場合は
再設定するコードを書いておけば万全です。

function renew_cache(){
    delete_transient(‘test’);
    //testのキャッシュの内容をそのまま記述。
    $args = [
     // パラメータ
    ];
    $get_contents = get_posts($args);
    set_transients(‘test’,$get_contents);
}
add_action( 'save_post', 'renew_cache');

まあ、キャッシュのない状態でアクセスされればキャッシュされるので
正直、ここまでやらなくてもいいでしょうが。。

まとめ

Transients APIはデータベースの処理を軽減する1つの手段で、かつ劇的な効果をもたらすものではありません。

ですが、0.1秒の時間短縮の積み重ねがやがて1秒、2秒の差を生むのも確かなので
余裕があれば設定してみるのがいいでしょう。

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


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

高速化診断 & 表示速度改善でユーザー体験とCVRを向上!

デジタルアイデンティティでは、Webサイトの表示速度に課題を感じている企業様向けに、無料の高速化診断とフロントエンドからインフラまで一貫対応する表示速度改善サービスを提供しています。

表示速度が遅いページ・原因が一覧でわかる高速化診断でサイトの現状を徹底分析。PageSpeed Insightsのスコア改善はもちろん、画像・CSS/JS・サーバー処理・インフラ最適化まで、技術力と実績に裏打ちされた幅広い施策で、SEO評価やCVR、UI/UXを総合的に底上げします。

こんなお悩み、ありませんか?

  • まずはサイトの現状を診断してほしい…
  • PageSpeed Insightsのスコアが低く、改善したい…
  • ユーザー離脱や直帰率が高く、表示スピードが原因かもしれない…
  • 高速化に詳しいエンジニアが社内にいない…
  • 対策したがスコアが上がらない、改善方法がわからない…

多くの企業サイトやLP、ECサイトなどで成果を上げてきた表示速度改善のプロフェッショナルが、貴社サイトの課題を根本から解決します。

【無料】高速化診断に申し込む

関連記事