functions.phpでよく使うフック(add_action / add_filter)解説

Contents
はじめに
WordPressテーマ開発において、functions.phpはサイトの挙動を制御する重要なファイルです。
その中でも頻繁に使用されるのが「フック」と呼ばれる仕組みであり、主に add_action と add_filter の2種類があります。
本記事では、WordPress初心者でも理解できるように、
- フックの基本的な考え方
- add_action と add_filter の違い
- functions.phpでよく使われる具体例
を段階的に解説します。
WordPressの仕組みを正しく理解し、拡張性の高いテーマを作るための基礎として役立つ内容です。
フック(Hook)とは何か
フックの基本概念
フックとは、WordPressの処理途中に任意の処理を差し込むための仕組みです。
WordPress本体のファイルを直接編集せずに、動作を変更・追加できる点が最大の特徴です。
フックを使うことで、以下のようなことが可能になります。
- CSSやJavaScriptの読み込みを制御する
- 投稿の表示内容を加工する
- 管理画面の機能を拡張する
この仕組みにより、WordPressは高い拡張性を持っています。
add_action と add_filter の違い
add_actionとは
add_action は、
「特定のタイミングで処理を実行する」ためのフックです。
主に以下のような用途で使われます。
- スタイルシートやスクリプトの読み込み
- テーマサポートの追加
- 管理画面のカスタマイズ
基本構文
add_action( 'フック名', '実行する関数名' );add_filterとは
add_filter は、
「データを受け取り、加工して返す」ためのフックです。
主に以下の用途で使用されます。
- 投稿タイトルや本文の書き換え
- 抜粋文のカスタマイズ
- 出力されるHTMLの調整
基本構文
add_filter( 'フック名', '実行する関数名' );action と filter の使い分け
| 種類 | 主な役割 | 返り値 |
|---|---|---|
| add_action | 処理の実行 | 不要 |
| add_filter | データの加工 | 必須 |
「処理を実行するだけ」なら add_action、
「値を変更する」場合は add_filter、
という基準で使い分けると理解しやすくなります。
functions.phpでよく使う add_action の例
wp_enqueue_scripts:CSS・JSの読み込み
最も使用頻度が高いアクションフックです。
function theme_enqueue_assets() {
wp_enqueue_style(
'theme-style',
get_stylesheet_uri(),
array(),
'1.0.0'
);
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_assets' );このフックを使うことで、WordPress推奨の方法で安全にCSSを読み込めます。
👉 CSSの正しい読み込み方法については
「WordPressテーマでCSSを読み込む正しい方法」の記事も参考になります。
after_setup_theme:テーマ初期設定
テーマの基本機能を登録する際によく使用されます。
function theme_setup() {
add_theme_support( 'title-tag' );
add_theme_support( 'post-thumbnails' );
}
add_action( 'after_setup_theme', 'theme_setup' );テーマサポートの設定は、このフック内でまとめて記述するのが一般的です。
functions.phpでよく使う add_filter の例
the_content:投稿本文の加工
投稿本文に対して処理を加える代表的なフィルターです。
function add_notice_to_content( $content ) {
return $content . '<p>※この記事は参考情報です。</p>';
}
add_filter( 'the_content', 'add_notice_to_content' );このように、受け取った値を必ず return する点が重要です。
excerpt_more:抜粋文の末尾変更
抜粋文の「[…]」をカスタマイズする例です。
function custom_excerpt_more( $more ) {
return '…';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );細かな表示調整にもフィルターフックは活躍します。
フックを使う際の注意点
関数名の重複を避ける
functions.phpはグローバルスコープで読み込まれるため、
関数名の重複はエラーの原因になります。
- テーマ名をプレフィックスに付ける
- 意味が明確な関数名を付ける
といった対策が有効です。
フックの実行タイミングを意識する
フックには「いつ実行されるか」という順序があります。
適切なフックを選ばないと、意図した動作にならない場合があります。
フックの役割を理解したうえで使い分けることが重要です。
まとめ
add_action と add_filter は、functions.phpを扱う上で欠かせない基本要素です。
- add_action:処理を追加する
- add_filter:値を加工して返す
この違いを正しく理解することで、
WordPressテーマ開発の自由度と安全性が大きく向上します。
まずは定番フックから慣れていき、
段階的に応用へ進むことが、安定した開発への近道です。

