便利さに感動してどんどん増え行くWordPressのプラグイン。気づいたらいつの間にか数十個になっている・・・なんてこともあるのではないでしょうか?
プラグインの中には管理系のものや表示方法に関するもの、特別なコンテンツを作ったり表示したりするものなどいろいろありますが、特定の記事やページだけで使っているプラグインがあったりしてほとんど使ってないものもありますよね?でも外すことができない・・・を解消できるのが「plugin load filter」というプラグインです。
WordPressではページを表示する際に有効化されているすべてのプラグインを一度読み込んでからショートコードやPHPコードなどを見て必要な情報を引っ張り出しています。つまり、そのページに不要なプラグインも一度は読み込まれているということになり、タイムロスになるばかりでなく、読み込むためにサーバーへ少なからず負担がかかります。
サーバー負荷なんか気にしなくていい!!と思われるかもしれませんが、アクセスがあるたびにこの動作が繰り返されるわけですから、同時にアクセスされる数が増えればその分負荷が高まり、限界を超える高負荷が発生すればせっかくアクセスされた方に対して500系(サーバー系)のエラーが出てページ表示ができなくなったり、高負荷が原因でサーバー契約が打ち切られたりなんてことにもなり兼ねません。
この「plugin load filter」は表示速度の改善もさることながら、アクセス数が上がってきた時の負荷対策として、不要なものは不要だから読み込まないようにして負荷を減らそう!!というのが本来の使い方(プラグイン作者の意図)だと思います。なので、ページ表示時間に関して導入してすぐに効果のあるサイトもあれば、表示速度はあまり変わらなくても負荷が少なくなる分たくさんの方からアクセスされても同じパフォーマンスを出せるサイトを作るためには欠かせないプラグインだと思います。
プラグインの簡単な紹介については
をご覧ください(日本の方が作っているプラグインですので作者の解説サイトへのリンクもあります)。
今回はもう少し具体的に、当サイトで実際に設定している内容を備忘録として紹介していきます。
実際のサイトでの「plugin load filter」の設定
これが「plugin load filter」のメイン設定画面です。ダッシュボードから「プラグイン」→「plugin load filter」で開くことができます。
ここでは、個々のプラグインに対して
- 通常ロード/いつでも読み込むプラグインとして認識
- Admin Filter/管理画面でのみ読み込むプラグインとして認識
- Page Filter/特定のコンテンツや投稿タイプ、個別の投稿や固定ページのみで読み込むプラグインとして認識
という区別をします。つまり、管理画面側で使うプラグインはAdmin Filterにすれば、特定のコンテンツでしか使わないものはPage Filterにすれば、その他は通常ロードにすれば基本的には不要なプラグインは読み込まれないようにできるわけです。
つまり、画像の圧縮をしたり、記事を書きやすくしたりするバックエンドだけ動作するものはAdmin Filterに設定すればひとまず負荷対策と表示速度の改善が図れるというわけです。
そして、そこから一歩進んだのが「Page Filter」。前述したように特定のコンテンツだけで動作させる設定ができるのですが、設定方法にちょっとしたコツがあります。
設定のコツは・・・
- 特定のコンテンツの種類に対してプラグインの動作をさせておいて、動作させないときは個々の編集画面で止める方法
- 全部のコンテンツでプラグインの動作を停止させておいて、動作させるときだけ個々の編集画面で動かす方法
の2つがあるということです。ちょっと混乱しそうですね。
私の場合はカスタム投稿タイプをたくさん使っていて、投稿タイプごとにだいたい使うものが決まっているので1の方法を使っています。
ちなみにたくさんの投稿などのコンテンツがある場合に2で設定した場合、一度プラグインの動作がすべて止まってしまいますから1つ1つの記事などの見直しが必要になります。
※動作させないプラグインがショートコードで呼び出されている場合、表示画面にはショートコードそのものが表示されてしまいます。
話を戻して1の場合の設定方法を紹介します
先程の
の画面で「Page Filter」にして保存したものは、一覧上のタブにある「Page Filter有効プラグイン選択」の中に表示されるようになります。
ここで設定するのは「どのコンテンツで動作させるのか?」ということ。デスクトップで表示する?しない?モバイルのときは??投稿タイプは?などいろいろとマークがありますから、動作させたいところにチェックを入れて保存すれば、その場面だけ動作するようになります(こうすることで先ほどの2のように全部のコンテンツでプラグインが停止してショートコードがそのまま表示されるという不都合がなくなります)。
その後、記事をメンテナンスする際に必要でないものについては投稿編集画面上にある
で使用しないようにしたり、デスクトップとモバイルで動作を停止していきます。
慣れてくれば簡単なのですが、「Page Filter」の設定でちょっと躓くかもしれませんので備忘録をかねて紹介させていただきました。
私も含め未来的には月何十万PV・・・なんてのを目指してみなさんサイト作りをしていると思いますので、夢に近づくためにも負荷対策としてこの「plugin load filter」プラグインの使用をお勧めします!!