どうしたらいいのNAVI

どうしたらいいの?にお答えするサイト

【WordPressプラグイン自作】特定のイベント時に処理を実行させるアクションフック(add_action)

      2015/11/07


WordPressのプラグインを自作するには自分のつくったプログラムがいつ実行されるのか?という事が気になるかと思います。
Wordpressでは「フック」と呼ばれる機能が備わっていて、フックの機能を利用する事によって、プラグインで実装されているプログラムを実行する事が出来ます。

 
Wordpressのプラグインを自作する上ではフックの一つであるアクションフックについて知っておくのがプラグイン開発では重要なので、アクションフックについてしっかりと押さえておきましょうね。

 
特定のイベント時に処理を実行させるアクションフックについて簡単でわかりやすく詳しく紹介しているのでチェックしていってくださいね。

 

 
【Wordpressプラグイン自作】特定のイベント時に処理を実行させるアクションフック(add_action)
 

 

特定のイベント時に処理を実行させるアクションフックとは

特定のイベント時に処理を実行させるアクションフックとは、Wordpressのフックの一つで、主に「Wordpress上で何かしらのイベントが起きたとき」や「特定のポイントに来たとき」にWordpressのコア処理が処理を読み込み、実行させるものです。

 
アクションフックはアクションフックAPIによってWordpress導入時から利用できる「add_action」関数を使う事でアクションフックを利用する事が出来ます。

 
アクションフックの特徴は「何かのタイミングでアクティブな処理を実行させる事」です。
例えば、投稿を下書きしたタイミングで処理を実行したい場合、管理画面を表示したタイミングで処理を実行したい、ブラウザで投稿記事を表示するタイミングで実行したい等の要件で利用すると便利です。

 
特定のイベント時に処理を実行させるにはWordpressに備わっている「アクションAPI」を利用する事で、自分の実装した処理を特定のイベントやポイントに来た時に実行させる事が出来るようになります。

 

 

 

 

アクションフックを使う方法

WordPressのアクションフックを使うには「アクションAPI」を利用し、プラグインやWordpressのコアファイルにアクションフックの定義を追加したり、削除したりする事で利用する事が出来ます。

 
アクションフックを使うには次のような手順を行うと良いでしょう。

  • 自作関数を作成する
  • 自作関数をアクションフックに登録する(add_actionの利用)

 
アクションフックはたったこれだけで利用する事が出来ます。
では、実際にアクションフックを使う方法について具体的に見ていきましょう。

 

 

 

自作関数を作成する

自作関数を作成する手順では、プラグインとして処理をさせたい振る舞いについて処理を記述していきましょう。
例えば、投稿画面を開いたときに予め入力したいテキストを返す処理などを記述しておいたりする事が考えられますね。

自作関数は、PHPの制約を守っていて、他のプラグインで登録されている関数名でなければどんな名前を付けても構いません。
試に自作関数として特定のテキストを返す自作関数を作成してみました。

 

 

 

自作関数をアクションフックに登録する(add_actionの利用)

自作関数をアクションフックに登録するには「add_action」を利用して、自作関数をWordpressのコアから認識できるようにしましょう。
add_actionは次のような形式で記述する事が出来ます。

 

 

 

 

アクションフック名

「${アクションフック名}の引数は必須で指定しなければならない引数で、Wordpressの特定のイベントやポイントを表現しているアクションフック名を指定します。
ここで指定したアクションフック名によって、後述する自作関数がここで選択したイベントのときやポイントに来た時に実行されるようになります。

 
例えばWordpressが完全にロードされた後に実行、footer.php ファイルが読み込まれる直前に実行する等の指定をする事が可能です。

 
指定できるアクションフック名は多彩で「プラグイン_API/アクションフック一覧」が参考になりますのでチェックしてみてください。

 

 

 

関数名

「$関数名」の引数は必須で指定しなければならない引数で、プラグインで実装した関数名を指定します。
関数名を記述する事で、アクションフックで指定されたタイミングや契機と共にプラグインの関数が処理されるようになります。

 
例えば、「dousitaraiino_action」という関数を実装したのであれば、その関数名をここで指定する事でアクションフックで指定したタイミングで処理が実行され結果が反映される事となります。
 

 

優先順位

「$優先順位」の引数は任意の引数で、アクションフック毎に処理される関数の内、今回アクションフックに登録する関数の優先順位を決定する事が出来ます。
何も指定しなかった場合はデフォルトで優先順位が「10」として設定され、値が小さくなればなるほど優先的に処理され、値が大きくなればなるほど後で処理される事になります。

 
アクションフックには自作したプラグインだけでなく、他のプラグインによって実装された関数も登録されているので、優先的に処理させないと他の処理に影響が出る場合は設定値を小さくし、逆に後で処理させないと他の処理に影響が出る場合は設定値を大きくしましょう。

 

 

関数の引数の数

「$関数の引数の数」は任意の引数で、関数が受け取る引数の数を指定します。

 
PHPは同じ関数名であっても、引数の数が違う事によって、違う関数として認識されるため、もし同じ関数で違う処理の関数を用意したのであれば、それぞれの処理を正確にアクションフックに追加する為に、関数の引数の数を入力しましょう。

 

 

 

 

スポンサーリンク


この記事を読むうえで知っておきたい知識

この記事を読む上で知っておきたい事について紹介します。
何かに困った時に他の方法を思いついたり、用語がわからなくて読みづらいと感じた場合は、これから紹介する事を参考にしてみてください。

 

 

 

WordPressでプラグインを自作する上で絶対に知っておきたい事

【Wordpress】プラグインを自作する上で絶対に知っておきたい事
Wordpressのプラグインを自作する上で絶対に知っておきたい事というのは、プラグインを自作する上で必須となるプラグインのモジュール(PHPやJS、CSSファイル)の保存先や、各種設定などなどプラグインを自作する上で最低限必要となるWordpressや技術的な前提知識となります。

 
Wordpressのプラグインを作成する上ではWordpress上で動かなければなりませんし、Wordpressそのものに機能を追加するとなるとWordpressそのものに対する多少の前提知識がつきものとなってきます。

 
Wordpressのプラグインを自作する上で絶対に知っておきたい事を項目として挙げると次の通りとなります。

  • WordPressのテーマ・プラグインの開発環境を構築する方法
  • プラグインの保存先
  • WordPressに自作プラグインを登録・認識させる方法
  • WordPressに自作プラグインの関数を処理させる方法
  • WordPressが一番初めに実行するプラグインの処理
  • プラグイン有効化の時だけ実行される初期化処理について
  • WordPressプラグイン開発時によく使うPHP関数について

 

WordPressのテーマ・プラグインの開発環境を構築するというのは、Wordpress上で動作するWordpressのテーマとプラグインを開発する為に必要なIDE(統合開発環境)をパソコンにインストールしてプラグインやテーマの開発を進められるようにパソコン上の環境を整える事を意味しています。

 
Wordpressのテーマやプラグインを導入する前のWordpressを使い、何の記事も投稿されていない状態のWordpressを使いたい方はWordpressを一から構築するのが良いでしょう。

 
プラグインやテーマを自作したり、公開されているプラグインをダウンロード・インストールした後に自分好みにカスタマイズするにも、Wordpressの管理画面からのカスタマイズだけでは解析作業やコーディング作業が困難な場合があります。

 
そんな時は自分のパソコン上(ローカル環境)でワードプレスをテスト出来るようにセットアップして、統合開発環境上でプラグインやテーマを開発・カスタマイズするのが良いでしょう。

 
Wordpressのテーマ・プラグインの開発環境を構築する方法は次の流れで行います。

  • WordPressのテーマ・プラグインの開発環境を構築する
  • WordPress開発環境に必要なXamppの設定を行う
  • XamppにWordpressをインストールする
  • MySQLにWordpressに必要なデータベースを作成する
  • WordPressの初期設定を行う
  • Xampp上のWordpressをEclipseに読み込ませ開発出来る状態にする
  • 開発しやすいようにEclipseの設定を変更する

 

【Wordpress】インストールしたプラグインの保存場所(ディレクトリ)
Wordpressでインストールしたプラグインの保存場所というのは、Wordpressに特別なカスタマイズを加えない限りは全ての環境で同じディレクトリに保存される事になります。

 
Wordpressはプラグインが決められた場所に保存される事によって、ここに保存されているのはプラグインと判断する事が出来、読み込んでWordpressの機能として追加する事が実現できるのです。

 
Wordpressでインストールしたプラグインの保存先ディレクトリはWordpressがインストールされているルートのディレクトリから「${ドメインルートディレクトリ}/public_html/wp-content/plugins」の場所に保存される事になります。

 
プラグインの保存場所を実際に確認するにはFTPアクセスできるツールでWordpressが稼働しているサーバにアクセスして、インストールしたプラグインの保存場所まで移動する事で確認する事が出来ます。

プラグインの保存場所を確認するのに「FFFTP」などのツールを利用するようにしましょう。
プラグインの保存場所は次の流れで確認する事が出来ます。

  • WordPressを保存しているサーバにFTPアクセスする
  • プラグインの保存先ディレクトリに移動する

 

【Wordpressプラグイン自作】自作プラグインをWordpressに登録し認識させる方法
自作プラグインをWordpressに登録し認識させる方法では、自分で作成したプラグインをWordpressに認識させ、実際に管理画面などに表示する方法について紹介します。
自作プラグインをWordpressに登録し、実際に管理画面などで扱えるようにするにはポイントがあり、それは次の通りです。

  • プラグインのPHPファイル内にプラグイン標準情報を記述する
  • プラグインをプラグインのインストール先ディレクトリに保存する

 

【Wordpressプラグイン自作】プラグインの処理をWordpressに実行させる「フック」
プラグインの処理をWordpressに実行させるフックというのはWordpressのコアにプラグインの関数を読み込ませ、実行させるために利用するAPIの概念の事を言います。

 
フックというのは「引き込む」という意味合いがあり、文字通りプラグインにフックを利用する定義を記述する事で、Wordpressにプラグインの関数を特定のタイミングやポイントなどで引き込ませ、実行させます。

 
プラグインの処理をWordpressに実行させるフックは2つ存在し、次の通りとなります。

  • アクションフック
  • フィルターフック

 

【Wordpressプラグイン自作】プラグインで一番初めに実行されるPHPファイルはどれ?
ここで言うWordpressがプラグインを認識して一番初めに実行されるPHPファイルというのは、Wordpressがインストールされたプラグインを初めて認識し、どのファイルから実行するのか?という事を指しています。

 
プラグインのモジュールセットとして使っているPHPファイルが一つであればこういった疑問は起こらないかもしれませんが、PHPファイルを設定画面用、初期化処理用、コンテンツ作成用などと分けている場合、Wordpressはどこから処理を実行してくれるんだろうか?という疑問が起こるはずです。

 
Wordpressであってもプラグインを認識して使えるようにするにはプラグインの処理の「始め」を知る必要があり、プラグイン開発や公開プラグインの編集を行う上ではこのはじめとなる「処理の入口」を知っておく事が絶対必要になってきます。

 
結論を申し上げますと、Wordpressが一番初めにプラグインを認識して実行するファイルは「プラグイン標準情報」が記述されたPHPファイルから実行されます。
プラグイン標準情報が記載された「<?php~?>」で囲まれた部分の処理から実行される事になります。

 

【Wordpressプラグイン自作】Wordpressのプラグインの初期化処理の方法(plugins loaded)
Wordpressのプラグインの初期化処理の方法というのは、Wordpressに登録したプラグインが有効化された時に、プラグイン実行の為に必要な前提情報を起動時に一度だけ実行する処理の事を指します。

 
プラグインの最初の一度だけ処理され、変数として持ちたい値などを予め設定しておくことを「初期化」または「イニシャライズ」と言います。

 
Wordpressのプラグインの初期化というと理想的なのがプラグインの一覧画面からプラグインを有効化した時でしょう。
プラグインの一覧画面からプラグインを有効化した際に、初期化処理をさせるのに利用するのが、フィルターフックの一つである「plugins loaded」の利用です。

 
Wordpressのプラグインの初期化を利用する上では次の手順を踏むようにしましょう。

  • 初期化処理関数を作成する
  • 初期化処理関数をアクションフックで呼び出す

 

【Wordpressプラグイン自作】プラグイン開発で良く使う!よく見る!PHPの関数
プラグイン開発でよく使う、よく見る関数集というのは、実際にプラグイン開発の時に知っておくと実装が楽になったり、他の人が作ってくれたプラグインの処理でよく使われるPHP標準の関数の事を指します。

 
プラグイン独自で実装されている関数については各種プラグインの処理のコードを読む必要がありますが、PHPの標準の関数について知っておくだけでプラグイン開発が効率的に作業出来るようになったり、プラグインの処理を読む労力が削減されます。

 
プラグイン開発で良く使う、よく見るPHPの関数としては次のような関数があります。

  • require_once(${ファイル名})

 
Wordpressのプラグインを自作する上で絶対に知っておきたい事については「【WordPress】プラグインを自作する上で絶対に知っておきたい事」で簡単でわかりやすく、更に詳しく紹介しているのでチェックしていってくださいね。

 

 

 

 

WordPressで特定のイベント時に処理を実行させるアクションフック あとがき

WordPressで特定のイベント時に処理を実行させるアクションフックについて紹介しました。
Wordpressのプラグインを作る上では自分の好きな決まったタイミングで処理を実行したいものですよね。

 
そんな時にアクションフックを知っておくと「そういえばあるタイミングで処理を実行する手段があったよなぁ」なんて風にアクションフックの存在を思い出す事が出来ます。
Wordpressの処理をいじる機会が多い人にとっては、簡単なことかもしれませんが、プラグインを自作に手を出したばかりの初心者の人の場合は「何がどっから呼ばれてんだ?!」と困ってしまいますよね。

 
そんな時はアクションフックあったなぁなんて事を思い出していただければ幸いです。

 

 

 

 

WordPressで特定のイベント時に処理を実行させるアクションフック まとめ

特定のイベント時に処理を実行させるアクションフックとは、Wordpressのフックの一つで、主に「Wordpress上で何かしらのイベントが起きたとき」や「特定のポイントに来たとき」にWordpressのコア処理が処理を読み込み、実行させるものです。

 
アクションフックはアクションフックAPIによってWordpress導入時から利用できる「add_action」関数を使う事でアクションフックを利用する事が出来ます。

 
アクションフックの特徴は「何かのタイミングでアクティブな処理を実行させる事」です。

 
Wordpressのアクションフックを使うには「アクションAPI」を利用し、プラグインやWordpressのコアファイルにアクションフックの定義を追加したり、削除したりする事で利用する事が出来ます。

 
アクションフックを使うには次のような手順を行うと良いでしょう。

  • 自作関数を作成する
  • 自作関数をアクションフックに登録する(add_actionの利用)

 
自作関数を作成する手順では、プラグインとして処理をさせたい振る舞いについて処理を記述していきましょう。
例えば、投稿画面を開いたときに予め入力したいテキストを返す処理などを記述しておいたりする事が考えられますね。

自作関数は、PHPの制約を守っていて、他のプラグインで登録されている関数名でなければどんな名前を付けても構いません。

 
自作関数をアクションフックに登録するには「add_action」を利用して、自作関数をWordpressのコアから認識できるようにしましょう。
add_actionは次のような形式で記述する事が出来ます。

 

 
「${アクションフック名}の引数は必須で指定しなければならない引数で、Wordpressの特定のイベントやポイントを表現しているアクションフック名を指定します。
ここで指定したアクションフック名によって、後述する自作関数がここで選択したイベントのときやポイントに来た時に実行されるようになります。

 
「$関数名」の引数は必須で指定しなければならない引数で、プラグインで実装した関数名を指定します。
関数名を記述する事で、アクションフックで指定されたタイミングや契機と共にプラグインの関数が処理されるようになります。

 
「$優先順位」の引数は任意の引数で、アクションフック毎に処理される関数の内、今回アクションフックに登録する関数の優先順位を決定する事が出来ます。
何も指定しなかった場合はデフォルトで優先順位が「10」として設定され、値が小さくなればなるほど優先的に処理され、値が大きくなればなるほど後で処理される事になります。

 
「$関数の引数の数」は任意の引数で、関数が受け取る引数の数を指定します。

 

 
最後までお読みいただきありがとうございました。

スポンサーリンク





 - Wordpress , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

【Head Cleaner】Google Ajax Libraries を使う設定!
【Head Cleaner】Google Ajax Libraries を使う設定!

Head Cleanerの設定にはGoogle Ajax Librariesを使 …

W3 Total Cacheの設定方法と使い方とは
【W3 Total Cache】W3 Total Cacheの設定方法と使い方

WordPressで運営されるブログを高速化する上で今や必須となっているW3 T …

【Wordpress】Head Cleanerの設定! Wordpressのブログを高速化!
【WordPress】Head Cleanerの設定! WordPressのブログを高速化!

WordPressでブログ運営を行っていると、ブログのパフォーマンスを気にしてい …

【W3 Total Cache】ブラウザキャッシュ(Browser Cache)のCSS&JS設定
【W3 Total Cache】ブラウザキャッシュ(Browser Cache)のCSS&JS設定

WordPressでブログを運営している人でW3 Total Cacheのブラウ …

【Quick Adsense】Quick Adsenseの広告の掲載位置を設定する
【Quick Adsense】Quick Adsenseの広告の掲載位置を設定する

Googleアドセンスや忍者アドマックスの広告などの掲載の為、Wordpress …

【W3 Total Cache】全体設定(General Settings)を設定しよう!
【W3 Total Cache】全体設定(General Settings)を設定しよう!

WordPressを運営していて、W3 Total Cacheを利用している人は …

【Wordpress】レンタルサーバからローカル環境にWordpressを移行する方法
【WordPress】レンタルサーバからローカル環境にWordPressを移行する方法

WordPressのテーマやプラグイン開発を進める上で、レンタルサーバ上で稼働し …

【Wordpressプラグイン自作】投稿画面の不要なパーツを削除する(remove_meta_box)
【WordPressプラグイン自作】投稿画面の不要なパーツを削除する(remove_meta_box)

WordPressのプラグインを自作で開発している人はプラグイン上でカスタム投稿 …

【Wordpress】プラグインを整理してブログ価値を高めよう!
【WordPress】プラグインを整理してブログ価値を高めよう!

WordPressを使用している人はとても多いですよね。 SEOに強いし、いろい …

【Quick Adsense】記事下に自動で広告を挿入するQuick Adsenseの設定
【Quick Adsense】記事下に自動で広告を挿入するQuick Adsenseの設定

WordPressでブログを運営している人で、Quick Adsenseを使って …