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

functions.phpでadd_actionとadd_filterを使ったWordPressフックの仕組みを示すイメージ
WordPressテーマ開発で重要となる functions.php のフック機能(add_action・add_filter)を視覚的に表現したアイキャッチ画像

はじめに

WordPressテーマ開発において、functions.phpはサイトの挙動を制御する重要なファイルです。
その中でも頻繁に使用されるのが「フック」と呼ばれる仕組みであり、主に add_actionadd_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テーマ開発の自由度と安全性が大きく向上します。

まずは定番フックから慣れていき、
段階的に応用へ進むことが、安定した開発への近道です。

関連記事