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