WordPressの開発では、アクションを使用してWordPressサイトの動作を変更したり、新しい機能を追加したりすることができます。WordPress には多くの定義済みアクションがあり、開発者は WordPress コアの特定の箇所に独自のコードを追加することができます。
アクションは、WordPressをカスタマイズ可能にする大きな特徴のひとつです。アクションは、WordPressのイベントに「フック」されるPHPコードの断片です。イベントがトリガーされると、アクションが実行されます。
プラグインやテーマの開発者によって広く使われている。しかし、もしあなたが開発者でないなら、Webサイトからコードスニペットを貼り付けて、あなたのサイトに新しい機能を追加することができます。これらの多くはアクションを含みます。
WordPressのアクションとは?
アクションは特定の機能の初期設定を変更します。WordPressから情報を受け取り、それを使って何かを行います。
例えば、ページに宣伝メッセージを設置したり、プラグインを有効化したり、サイドバーにウィジェットを追加したり、投稿を公開したり、ヘッダーにメニューを追加したりするためにアクションを使うことができます。また、投稿日が公開された後に投稿者にメールを送信したり、フッターにカスタムスクリプトを読み込んだり、読者にフォームの入力方法を指示したりすることもできます。
アクションはadd_action()
関数を使って追加します。WordPressにはアクションを使用できる関数がいくつかありますが、最もよく使われるのはこれらの関数です:
add_action()
:do_actionで
指定したフックに関数を添付する。remove_action()
: 指定したアクションフックに添付された関数を削除します。do_action()
: ここで “フックされた “関数が実行される。has_action()
: アクションが登録されているかどうかを調べます。
アクションはプラグインやテーマの開発者がWordPressに機能を追加するために使用します。また、オンラインチュートリアルのコードスニペットを追加することで、アクションを使ってテーマをカスタマイズすることもできます。
functions.phpファイルの編集に慣れていて、PHPの知識がある経験豊富なユーザーだけが、この方法を試してください。
初心者は、プラグインを使ってやりたいことを実現するか、プロに相談してコードを編集してもらうべきだ。
WordPressサイトのコードを編集する前に、コーディングエラーに備えてサイトをバックアップしておくことをお勧めします。バックアッププラグインをお持ちでない場合は、WordPressバックアッププラグインを比較した投稿をご覧ください。
また、テーマファイルに直接コードを追加しないことをお勧めします。そうしないと、次回テーマを更新したときにカスタマイザーが失われてしまいます。
代わりに、WordPressにカスタムコードを追加するためのコードスニペットプラグインを使うか、サイト固有のプラグインを作成するか、親テーマの代わりに子テーマを作成してそれを修正する必要がある。
カスタマイザーを失うことなくWordPressテーマを更新する方法については、こちらのガイドをご覧ください。
フック、アクション、フィルターの違いとは?
WordPressにおけるアクションをよりよく理解するためには、アクションが他の2つのキーワード、フックとフィルターにどのように関連しているかを見ることが役に立つ。これら3つのキーワードを一緒に理解することで、「アクション」というキーワードを少し理解しやすくなるでしょう。
フックはWordPressプラグインとテーマ開発の基礎です。開発者がカスタムコードをWordPressの特定の場所に「フック」し、コアファイルを編集することなくWordPressの動作を変更できる場所です。
フックには2種類ある。
- アクションフックを使うと、何かをすることができます。テーマやプラグインが有効化されたとき、投稿が公開されたときなどのイベントが発生したときに実行されます。アクションが実行された後は、WordPressに情報を返す必要はありません。
- フィルターフックを使うと、何かを変更することができる。フィルターフックは、処理中のデータをインターセプトして、それを変更し、それを送り返すことができます。データベースやユーザーのブラウザーに送信される出力をフィルターするために使われます。
これらのアクションフックとフィルターフックは、WordPress コア、テーマ、プラグインがどのように動作するかの基盤です。開発者が初期設定の WordPress イベント、フィルター、アクションを柔軟に変更できるよう、これらのフックは連携しています。
開発者は、他の開発者がプラグインやテーマを拡張できるように、独自のカスタムアクションやフィルターを作成することもできます。
WordPressフィルターの例
アクションとはどのようなものか?いくつか例を挙げよう。
フッターに著作権表示を追加したいとしましょう。これを行うには、フッターテンプレートを直接修正することもできます。しかし、すでにフッターで実行されている定義済みのアクションにコードをフックする方が簡単で、より良い方法です。
これを行うには、functions.php
ファイルの関数にコピーライトコードを追加します。そして、この関数をコピーライトコードを実行させたい場所にあるアクションに追加します。
function copyright_notice() {
echo "Copyright All Rights Reserved";
}
add_action('wp_footer','copyright_notice');
この例では、copyright_noticeは
wp_footer
フックにフックされたアクションです。copyright_notice関数は、WordPressテーマのコードにwp_footer()
フックが現れるたびに実行されます。
アクションを使用するWordPressガイドを勉強することで、さらに詳しく学ぶことができます。例えば、WordPressのアクションを使って実用的なことを実現する方法を紹介するガイドをいくつか紹介します:
- WordPressテーマでカスタムナビゲーションメニューを作成する方法
- WordPressウィジェットをサイトのヘッダーに追加する方法
- 投稿公開時にカスタムフィールドを自動的に追加する方法
- WordPressでカスタムの管理者通知を追加する方法
- 管理者以外のすべてのユーザーの管理バーを無効化する方法
WordPressのアクションは、テーマのほぼすべての場所にコンテンツを出力する方法を提供します。おそらく、すでに初期設定のフックがあり、必要なことを正確に行うことができます。WordPressはプラグインAPI/アクションリファレンスでアクションのリストを提供しています。
この投稿がWordPressのアクションについてより詳しく知っていただく一助となれば幸いです。WordPressの便利なTipsやトリック、アイデアに関する関連投稿については、下記の「Additional Reading」リストもご覧ください。
このガイドを気に入っていただけたなら、WordPress動画チュートリアルのYouTubeチャンネルの購読をご検討ください。Twitterや Facebookでもご覧いただけます。