WordPressのユーザーでも、プロのWebサイト構築者でも、これまでにいくつかのプラグインを利用なさったことがあるでしょう。プラグインとは、コンテンツマネジメントシステム(CMS)に新たな機能を追加するためのソフトウェアです。お問い合わせフォームやショッピングカート、SEO対策など、あらゆる機能を数回クリックするだけで実現できます。
さらなるメリットとして、WordPressプラグインは独自にカスタマイズして構築することが可能です。しかも、WooCommerceやJetpackといった大手のプラグインのような規模や深さは必要ありません。また、PHPやJavaScriptについて、多少の知識は必要であるものの、専門家である必要はありません。
実は、WordPressプラグインをカスタマイズ構築する理由は、主要な機能を追加することではありません。つまり、長期的な視点でWebサイトのメンテナンスを容易にすることなのです。新しいテーマに切り替えたときや、クライアントにサイトを引き渡すときに、問題が発生しないようにするためです。
カスタマイズしたプラグインにできることは、まだほんの一部にすぎません。ここでは、WordPressのカスタム・プラグインを導入することで、どのようなことが可能になるのかをご紹介します。
WordPressプラグインをどのように構築する?
これからWordPressカスタム・プラグインを導入するシナリオを説明しますが、その前に、どのようにしてプラグインを構築すればいいのか気になりますよね。これはかなり深いテーマです。
具体的な内容を網羅した参考資料やチュートリアルはたくさんあります。そのため、ここではあまり深い話はしません。
その代わりに、WordPressプラグインハンドブックをお勧めしておきます。このハンドブックには、プロジェクトを前進させるために必要な背景情報がすべて記載されています。特に、「プラグインの基本」のセクションでは、必要な最初のステップを説明しています。
また、デフォルトのWordPressのインストールに含まれているHello Dollyプラグインもチェックする価値があります。このプラグインは、1つのPHPファイルで構成されています。そのシンプルな構造は、ご自身の創造のためのインスピレーションとして役立つかもしれません。
なお、カスタム・プラグインを最大限に活用するために、以下のリソースもチェックしておくと良いでしょう。
・WordPress Plugin Boilerplate Generator
・Must Use Plugins(ヒント:ユーザーが無効にできないプラグイン)
シナリオ1:テーマ変更後もカスタマイズを維持する
WordPressのコードのチュートリアルでは、アクティブなテーマの「functions.php」ファイルにスニペットを追加することがよく紹介されています。これは、書く側にとっても読む側にとっても、一番簡単な方法だからです。
ですが、必ずしも最善の解決策であるとは限りません。例えば、すべての商品ページの下部にテキストを表示するWooCommerceのカスタムフックを考えてみましょう。この小さなコードは、テーマの中にあるときは問題なく動作しますが、デザインを変更した後はどうなるでしょうか?
テーマを変更すると、新しいテーマにコピーするのを忘れない限り、そのカスタマイズは失われます。さらにありがちなシナリオは、そのスニペットを忘れてしまい、気付いたあと新しいテーマに入れようと必死になることです。
プラグインは、テーマとは完全に切り離されているため、このような問題は起こりません。心ゆくまでテーマを変更しても、その機能は失われることはありません。
シナリオ2:Webサイト間で機能を行き来する必要がある場合
WordPressでWebサイトを構築すると、同じ機能を複数の場所で使用する必要が出てきます。例えば、管理している各サイトにカスタマーサポート情報を追加したり、マルチサイトでカスタム投稿タイプを共有したりすることが考えられます。
Gutenbergブロックエディタの登場により、カスタムブロックもその典型的な使用例となりました。あるブロックが顧客固有のものであったとしても、他のブロックはもっと汎用的なものかもしれません。ブロックをプラグインに入れることで、移行性が高くなります。
このような状況では、カスタム・プラグインが救世主となります。わざわざ何度も一からやり直す必要はありません。その代わり、必要な機能が1つのパッケージに含まれています。インストールして、起動して、次に進むだけです。
もっとも、プラグインのメンテナンスについて話題にする良い機会ではあります。複数のWebサイトで同じカスタム・プラグインを利用する場合、必要に応じてコードを更新するための効果的な方法が必要になります。Gitのようなバージョン管理システムは、このタスクに便利です。
今は無関係であっても、複数のWebサイトにあなたのプラグインをインストールする前に考えることが重要です。プラグインが存在する場所が多ければ多いほど、何らかの形で自動化しなければ維持するのが難しくなります。
シナリオ3:既存のプラグインの拡張
ほとんどのWordPressプラグインは、様々なフックやフィルターに対応しています。これは、プラグインの出力や機能を変更・拡張するためのコードです。前述のWooCommerceの例を考えてみてください。
このようなカスタマイズは、Eコマースや会員制サイトなどの特殊なプロジェクトで重要な役割を果たします。これらのカスタマイズをカスタム・プラグインに組み込むと、様々な面で効果を発揮します。
カスタム・プラグインは、前述のようにテーマから切り離すだけでなく、よりよく整理することができます。すべてのコードスニペットを1つの場所にまとめておけば、変更の際に探し回る必要がなくなります。
また、将来的に新しい機能を追加することも可能です。Webサイトが進化するにつれ、さらなる機能強化が必要になるかもしれません。そんなときは、テーマに手を加えるのではなく、カスタム・プラグインに機能を追加しましょう。
もちろん、信頼できるサードパーティのプラグインが使えなくなる場合もあります。どのような理由であっても、その時が来たら、カスタム・プラグインを無効にしたり、あなたが書いた追加コードを削除したりすることは簡単です。
機能を追加するための用意周到な方法
カスタムコードをWordPressテーマに直接追加する前に、その目的を考えてみましょう。テーマに特化した機能を追加するには適した場所ですが、その他の機能はfunctions.phpファイルに入れるべきではありません。
その他の機能については、カスタム・プラグインを利用するのが良いでしょう。このプラグインは、重要な機能を保存するための独立したスペースを提供し、それらをうまく整理してくれます。また、これまでの努力を無駄にすることなく、新しいテーマに移行することもできます。
その結果、Webサイトのメンテナンスが容易になり、他の場所で使用するためにすぐに複製できる機能が提供されます。これは、WordPress開発のワークフローをレベルアップするための素晴らしい方法です。