ウィジェットの内容だけをキャッシュして表示を高速化するプラグイン「Widget Output Cache」

公開日: パフォーマンス改善
Knowledge Base 高速
Wordpressでは実にいろいろなプログラムでデータベースからデータを引っ張ってテーマを通じて表示するという作業を行っていることは、テーマやプラグインのコードを見たことがある方ならご存知のはずです。

そこで登場するのがページ全体を一時的にhtmlページとして書き出しておいて、一定時間中はそのページを表示させることで表示速度を飛躍的に改善しようという、いわゆるキャッシュプラグイン。確かに効果的ではありそうですが、導入したらサーバーによってはファイルの所有権エラーなどによってサイトが真っ白・・・になってしまったり、あまりアクセスのないページが多いサイトでは、キャッシュを作るための時間が逆にかかって表示速度がかえって遅くなる・・という現象も発生するのがこの類のプラグインの怖いところですね。

案の定キャッシュ系プラグインであまり効果が得られなかった方は、元に戻して(これも結構苦労するものが多いです)、【Autoptimize】などのプラグインを使って、コードの圧縮などを行うにとどめるという形を取ることが多いと思います。

でも何かうまく表示速度の改善ができないものか・・・で見つけたのが今回紹介する【Widget Output Cache】です。

【Widget Output Cache】はWordpressのほとんどのテーマで挿入可能となっているウィジェットに対してだけキャッシュを有効にして速度改善を行うプラグインで、特にRSSなど外部の情報を取得して表示するようなウィジェットを使っている場合には有効かと思います。

【Widget Output Cache】プラグインの基本的な機能・できること

  1. ウィジェットの内容をキャッシュ(一時保存)して表示を高速化する
この記事の内容について
このプラグイン紹介記事は簡易的に動作テストをした上で紹介していますが以下の点にご注意願います
  1. すべての環境で動作するとは限りません
  2. できる限り最新のバージョンの情報を紹介するようにしておりますが、閲覧される時期によってはバージョンが変わり、仕様が大きく変更されている場合があります
  3. 有料版と無料版がある場合、テストは原則無料版のみで実施しています
  4. テスト環境については本文中に記載しています
  5. 使用方法で紹介しているショートコードやコードなどをコピーして使用すると、環境によっては記号などが文字化けすることがあります。コピーしたのに動作しない場合は特に「”」「’」などの記号を入力し直してみてください。

【Widget Output Cache】プラグインの設定画面や表示の日本語化と翻訳

【Widget Output Cache】プラグインは有効化すると日本語で使用できるようになっていますので、英語が分からない方でも安心して使えます

【Widget Output Cache】プラグインは言語の変更に未対応ですので表示のまま設定することになりますが設定はウィジェットにキャッシュを適用するか否かの選択部分だけなので問題ありません。

【Widget Output Cache】プラグインのインストールと設定

インストール方法

インストールはプラグインの新規追加でプラグイン名で検索してインストールするか、ページ先頭の画像をクリックして表示されるWordpressのプラグイン公式配布ページがダウンロードしてからアップロードインストールします。

インストール方法の詳しい解説は

を参照ください

【Widget Output Cache】プラグインの基本的な使い方

設定項目はありません。各ウィジェットに画像のようなチェックボタンが表示されます
ウィジェットの内容だけをキャッシュして表示を高速化するプラグイン「Widget Output Cache」

※ここにチェックを入れるとキャッシュされないようになります

【Widget Output Cache】プラグインの便利な使い方・カスタマイズ方法など

より便利に使うカスタマイズ技やテストサイトで使用した結果や感想、Wordpressのプラグイン公式配布ページには書かれていない事柄などを紹介します。

キャッシュ時間を調整する方法

このプラグインには設定画面がなく、キャッシュ時間の設定は基本的に12分となっていますが、簡単には変更はできません。

すごくたくさんアクセスのあるサイトならともかく、1つの記事でこの時間にアクセスされるのは・・・でしょうから、キャッシュ時間の延長はしたいところですね。

そこで公式フォーラムで紹介されていたコードを紹介しておきます。少しカスタマイズして24時間にしてあります

add_filter( 'widget_output_cache_ttl', 'widget_cache_custom_ttl', 10, 2 );
function widget_cache_custom_ttl( $ttl, $widget_args ) {
	// Set custom expiration time in seconds for each widget
	$map_ttl = array(
		'your_widget_id' => 86400,
		'another_widget_id' => 86400
	);
	$widget_id = $widget_args['widget_id'];
	if ( isset( $map_ttl[ $widget_id ] ) )
		return $map_ttl[ $widget_id ];
	return $ttl;
}
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. 上のようなことがないのに更新できない
  6. 特に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。

コードを転載する場合には

ご自身のサイトで当ページのコードを転載される場合には必ず当ページへのリンクを入れていただきますようお願いいたします

このコードをテーマのfunctions.phpへ追記するだけです。

コードの中に

'your_widget_id' => 86400,
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. 上のようなことがないのに更新できない
  6. 特に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。

コードを転載する場合には

ご自身のサイトで当ページのコードを転載される場合には必ず当ページへのリンクを入れていただきますようお願いいたします

'another_widget_id' => 86400
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. 上のようなことがないのに更新できない
  6. 特に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。

コードを転載する場合には

ご自身のサイトで当ページのコードを転載される場合には必ず当ページへのリンクを入れていただきますようお願いいたします

の2行がありますが、基本的には上のyour_widget_idのみ設定すればいいようです。

プラグインのテスト環境&個人的評価

最後に【Widget Output Cache】を動作確認した際の環境と個人的な評価を書いておきます。導入の検討や参考になれば幸いです。

テストした環境

  1. WordPressのバージョン:4.9.6
  2. PHPのバージョン:7.0
  3. テーマ:Simplicity バージョン2.3.0g
  4. プラグインのバージョン:0.5.2
  5. このプラグインの最新バージョンは0.5.2です。バージョンが異なる場合には設定の仕方や動作仕様が変更になっている可能性があります。

個人的な評価・感想ほか

    5段階評価

  1. 設定のしやすさ:★★★★★
  2. 使いやすさ:★★★★★
  3. おすすめ度:★★★☆☆

確かに速度は改善している感じはしますが、本当にこのプラグインの効果なのか??はしばらく様子を見て判断するしかなさそうです。

Wordpressの本

Amazonの人気商品楽天市場の人気商品
CS Shop
たった1日で基本が身に付く! WordPress 超入門【電子書籍】[ 佐々木恵 ]

たった1日で基本が身に付く! WordPress 超入門【電子書籍】[ 佐々木恵 ]

1,944 円 (税込) 送料込
<p>WordPressによるWebサイト作成の基本を一から学べる書籍です。1日8時間の勤務時間内に読むことができる程度に解説内容を絞り込み,初心者・新人が最初の1冊目として読むのにふさわしい内容となっています。本書ではローカル環境にWordPressをインストールしてWebサイト..
サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル【電子書籍】[ 宮内 隆行 ]

サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル【電子書籍】[ 宮内 隆行 ]

3,456 円 (税込) 送料込
<p>プラグインの開発から運用までを網羅</p> <p>※この電子書籍は固定レイアウト型で配信されております。固定レイアウト型は文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。</p> <p>CMSのデファクト・スタン..
楽天ウェブサービスセンター CS Shop

いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】


記事の拡散にご協力をお願いします

閲覧いただきありがとうございました。役に立つ情報でしたら是非SNSでシェアをお願いします

関連情報