今回は、WordPressのfunctions.phpでアクションフック(add action)やフィルターフック(add filter)を利用する場合のフックの利用方法について基本的なポイントをお伝えいたします。
functions.phpの中に記述されているWordPress関数として、add_actionやadd_filterというものがあります。これはWordPressのプラグインAPI という仕組みを利用したもので、こうしたアクションフックやフィルターフックを利用すると、WordPressの機能をたくさん追加したり制御したりすることができます。
- add_action
- add_filter
「WordPressテーマのfunctions.phpを編集してカスタマイズする」でお伝えしましたとおり、WordPressをカスタマイズする場合、WordPressテーマのfunctions.phpを編集してカスタマイズを実装することがよくあります。
functions.phpの中でこうした様々な関数を用いてWordPressに特殊な機能を実装することができるのですが、これらはフックと呼ばれることがあります。add_actionを用いるものは、アクションフック、add_filterを用いるものはフィルターフックと呼ばれます。
WordPressにおけるフックとは?
WordPressにおけるフックとは、いわば、ある条件に合致したときに何かを実行するという至ってシンプルなものです。
このフックには、加えるのか、制限するのかといった種類によって、アクションフックとフィルターフックなどの分類があります。
どうしてこうした「フック」を利用するのかというと、このフックはWordPressを構成するWordPress本体、WordPressテーマ、WordPressプラグインの全てに適用できるため、それぞれがバージョンアップした場合にでも、カスタマイズした内容が上書き無効にならないという利点があるからです。
WordPressテーマ更新に注意
なお、フックはWordPressテーマの「functions.php」に記述しますので、万が一WordPressテーマ更新においてfunctions.phpが新しいものになっていた場合で、WordPressテーマを更新してしまった場合は全てのカスタマイズが無効になります(一般的にはfunctions.phpが上書きされることはめったにありませんが、テーマの大幅なメジャーアップデートがあった場合は要注意です)。
安全性を考えるなら子テーマ内のfunctions.phpにフックを記述する
こうしたことを避けるためには、WordPressテーマのカスタマイズにおいて、子テーマを利用して、子テーマ内のfunctions.phpにフックを記述すると解決することができます。
子テーマを利用してWordPressサイトをカスタマイズするメリット
こうしてWordPressテーマ内のfunctions.phpにadd_actionやadd_filterを利用してカスタマイズ項目を残しておくと、テーマファイルを上書きしない限り、WordPress本体やテーマ、各種WordPressプラグインが吐き出すソースに機能の追加や制限を加える事ができます。
アクションフック
WordPressをカスタマイズする際、アクションフックを利用する場合には基本的に「add_action」などを用います。
このアクションフックは、特定条件の出来事が起こった場合に加える動作を指定するといったイメージです。
add_action
functions.phpにadd_actionによってアクションフックを記述しておくと、特定の条件に合致した場合に加えられるソースコードが、WordPress本体やプラグインの更新にかかわらず吐き出されるようになります。
フィルターフック
WordPressをカスタマイズする際、フィルターフックを利用する場合には基本的に「add_filter」 などを用います。
このフィルターフックは、特定条件の出来事が起こった場合に特定の動作を除外したり「ファイルを呼び出さない」といった指定するイメージです。
add_filter
functions.phpにadd_filterによってフィルターフックを記述しておくと、特定の条件に合致した場合に制限(除外)されるソースコードを指定することができます。こちらもWordPress本体やプラグインの更新にかかわらず除外されるようにになります。
フィルターフックを使うシーン
add_filterによってフィルターフックを使うシーンの代表例は、WordPressプラグインファイルが吐き出すCSSなどをフィルタリングするときです。
プラグインファイルの中にもCSSがあり、WordPressサイトの中に吐き出されるようになりますが、場合によっては、既存のWordPressテーマファイル内のCSSと競合し、WordPressサイト全体のレイアウトやWebデザインに影響をあたえることがあります。
プラグインが吐き出すCSSファイルを制御するためにフィルターフックを利用する
シンプルなデザインの場合は、ありがたいこともあるかもしれないWordPressプラグインによるCSSの吐き出しですが、ありがた迷惑なことも多いため、こうしたプラグインが吐き出すCSSファイルを制御するためにフィルターフックがよく利用されます。
アクションフックやフィルターフックを利用してWordPress本体やプラグインを制御
これらアクションフックやフィルターフックを利用してWordPress本体やプラグインを制御することで、WordPressの機能を大幅にカスタマイズすることができます。
WordPress本体やWordPressプラグインファイルを直接編集してもよいのですが、バージョンアップによるカスタマイズの無効化リスクを避けるためにも、なるべくこうしたfunctions.phpでのアクションフックやフィルターフックを利用したほうが安全です。
ただし、functions.phpを操作しますので、内部サーバーエラーには注意してください。
(初回投稿日 2015年11月3日)
WordPressカスタマイズ・修正
ホームページ制作 京都のWeb制作会社ファンフェアファンファーレでは、WordPressで制作されたウェブサイト・ホームページのカスタマイズサービスとして、WordPress(ワードプレス)のテーマ(テンプレート)やプラグインのカスタマイズサービスを提供しております。
WordPressカスタマイズの他、WordPressに関する様々な機能の実装や調整、編集はもちろん、各種エラーの修正・復旧に対応しております。
復旧・復元・エラー修正
ホームページ制作 京都のWeb制作会社ファンフェアファンファーレでは、WordPress(ワードプレス)で制作されたウェブサイト・ホームページの復旧(復元)、エラー修正サービスを提供しております。弊社制作のWordPress(ワードプレス)サイトの復旧、エラー修正も承っておりますが、自社制作・運営、他社制作・管理のWordPressサイトのエラー復旧(復元)・修正にも対応可能です。
WordPressの保守やセキュリティについては、基本的にはバックアップによる保守管理で十分だと考えています。トラブル時のWordPressの復旧のためのWordPressの保守やセキュリティ、バックアップと復元について。
WordPressでのホームページ制作(WordPressサイト制作)
ホームページ制作 京都 ファンフェアファンファーレでは、ホームページ制作にあたり、WordPressでのホームページ制作(WordPressサイト制作)を推進させていただいております。
企業のWebマーケティングを加速するWordPressでのホームページ制作(WordPressサイト制作)ならお任せください!新規WordPressサイト制作はもちろん、htmlサイトからのホームページリニューアル、WordPressサイトのリニューアルにも対応しています。