はじめに
端的に言えば、WordPress プラグインは、WordPress プラグインヘッダーコメントを持つ PHP ファイルです。プラグインを保存するディレクトリを作成し、プラグインのすべてのファイルを一ヵ所にきちんとまとめることを強くおすすめします。
新しいプラグインの作成を始めるには、以下の手順に従ってください。
- WordPress の
wp-content/
ディレクトリに移動します。 plugins/
ディレクトリを開きます。- 新しいディレクトリを作成し、プラグインの名前を付けます (例:
plugin-name/
)。 - 新しいプラグインのディレクトリを開きます。
- 新しい PHP ファイルを作成します (このファイルにも、
plugin-name.php
などのプラグインの名前を付けるとよいでしょう)。
UNIX のコマンドラインでは次のようになります:
$ cd wp-content/
$ cd plugins/
$ mkdir plugin-name/
$ cd plugin-name/
$ vim plugin-name.php
上の例では、vim
はテキストエディターの名前です。あなたが使いやすいエディターを使用してください。
新しいプラグインの PHP ファイルを編集しているので、プラグインヘッダーコメントを追加する必要があります。これは特別な書式の PHP ブロックコメントで、プラグインの名前、作者、バージョン、ライセンスなどのメタデータを含みます。プラグインヘッダーコメントはヘッダー要件に従わなければならず、最低限プラグインの名前を含まなければなりません。
プラグインのフォルダー内の1つのファイルだけがヘッダーコメントを持つようにします – プラグインに複数の PHP ファイルがある場合は、そのうちの1つのファイルだけがヘッダーコメントを持つようにします。
ファイルを保存すると、WordPress サイトにプラグインが表示されるはずです。WordPress サイトにログインし、WordPress 管理画面の左側のナビゲーションペインにある プラグイン をクリックします。このページには、WordPress サイトにあるすべてのプラグインのリストが表示されます。新しいプラグインはこのリストにあるはずです !
フック: アクションとフィルター
WordPress のフックを使うと、コアファイルを編集することなく特定のポイントで WordPress の動作を変更できます。
WordPress のフックには、「アクション」と「フィルター」の2種類があります。アクションは、WordPress の機能を追加または変更でき、フィルターはそれがロードされ、Web サイトのユーザーに表示されるようにコンテンツを変更できます。
フックはプラグイン開発者だけのものではなく、WordPress のコア自体がデフォルトの機能を提供するために広く使われています。他のフックは未使用のプレースホルダーで、WordPress の動作を変更する必要があるときに利用できます。これが WordPress の柔軟性を高めているのです。
基本的なフック
プラグインを作成するときに必要な3つの基本フックは、register_activation_hook()、register_deactivation_hook()、および register_uninstall_hook() です。
有効化フックは、プラグインを 有効化 するときに実行されます。これを使用して、プラグインをセットアップする機能を提供します。たとえば、options
テーブルにいくつかのデフォルト設定を作成します。
無効化フックは、プラグインを 無効化 すると実行されます。これを使用して、プラグインによって保存された一時データをクリアする関数を提供します。
これらのアンインストールメソッドは、WordPress 管理画面を使用してプラグインが 削除 された後にクリーンアップするために使用されます。これを使用して、options
テーブルに追加されたオプションなど、プラグインによって作成されたすべてのデータを削除します。
フックの追加
do_action() を使用して独自のカスタムフックを追加できます。これにより、開発者はフックを介して関数を渡すことによってプラグインを拡張できます。
フックの削除
remove_action() を使用して、先に定義された関数を削除できます。たとえば、プラグインが別のプラグインのアドオンである場合、前のプラグインの add_action() によって追加された関数コールバックと同じものを remove_action() で削除できます。remove_action() は最初の add_action() の後に実行する必要があるため、このような状況ではアクションの優先順位が重要です。
フックからアクションを削除するときや優先順位を変更するときは注意が必要です。これらの変更が同じフックとの他の相互作用にどのような影響を与えるかを確認するのが難しい場合があるためです。頻繁にテストすることを強くおすすめします。
フックの作成とその操作について詳しくは、このハンドブックのフックセクションをご覧ください。
WordPress API
WordPress が多数のアプリケーションプログラミングインターフェイス (API) を提供していることをご存じですか ? これらの API を使用すると、プラグインで記述する必要があるコードを大幅に簡素化できます。特に多くの人があなたのために多くの作業やテストを行ってくれた場合には、車輪の再発明はしたくないでしょう。
最も一般的なのは Options API で、これを使用すると、プラグインのデータをデータベースに簡単に保存できます。プラグインで cURL を使用することを考えている場合、HTTP API は役に立つでしょう。
ここではプラグインについて話しているので、プラグイン API について学んでください。プラグインの開発を支援するさまざまな機能が備わっています。
WordPress がプラグインをロードする方法
WordPress が WordPress 管理画面のプラグインページでインストールされているプラグインのリストを読み込むとき、plugins/
フォルダー (およびそのサブフォルダー) を検索して、WordPress プラグインヘッダーコメントを含む PHP ファイルを見つけます。Hello Dolly のように、プラグイン全体が1つの PHP ファイルのみで構成されている場合、ファイルは plugins/
フォルダーのルート内に直接配置できます。ただし一般的には、プラグインファイルは、プラグインにちなんで名付けられた独自のフォルダーに存在します。
プラグインを共有する
作成したプラグインがサイト専用である場合があります。しかし、多くの人は自分のプラグインを WordPress コミュニティの他のメンバーと共有したいと考えています。プラグインを共有する前に、ライセンスを選択する必要があります。これにより、プラグインのユーザーはコードの使用がどのように許可されているかを知ることができます。WordPress コアとの互換性を維持するには、GNU General Public License (GPLv2+) で動作するライセンスを選択することをおすすめします。