WordPressフック入門:アクションとフィルターの違い・使いどころまとめ

WordPressの開発で頻繁に登場する「フック」は、プラグインやテーマを拡張・カスタマイズするうえで欠かせない仕組みです。この記事では、WordPressの2大フック「アクションフック」と「フィルターフック」の違いと、それぞれの使いどころを具体的なコード例とともに解説します。

フックとは?WordPressの拡張ポイント

WordPressの「フック(Hook)」とは、WordPress本体やテーマ、プラグインの処理に対して、開発者が独自の処理を差し込める“タイミング”のことです。

主に以下の2種類に分けられます:

  • アクションフック(Action Hook):処理の実行タイミングを拡張
  • フィルターフック(Filter Hook):データの加工や出力内容の変更

フックを使うことで、WordPress本体のコードを直接編集することなく、機能の追加やカスタマイズが可能になります。


アクションフックとは?実行タイミングで処理を追加

アクションフックは、指定されたタイミングで特定の処理を追加するときに使用します。主に何かを「実行する」用途に使われます。

基本構文

add_action('フック名', '実行する関数名');

例:wp_headフックでheadタグにコードを追加

function add_custom_meta_tag() {
    echo '<meta name="author" content="YourName">';
}
add_action('wp_head', 'add_custom_meta_tag');

この例では、<head>タグ内にカスタムのメタタグが追加されます。


フィルターフックとは?データの加工・変更に使用

フィルターフックは、ある値に対して処理を加えて別の値を返すときに使用します。主に表示内容の加工に使います。

基本構文

add_filter('フック名', '加工する関数名');

例:the_contentフィルターで記事末尾に追記

function add_custom_footer_text($content) {
    if (is_single()) {
        $content .= '<p class="custom-footer">この記事を読んでいただきありがとうございます!</p>';
    }
    return $content;
}
add_filter('the_content', 'add_custom_footer_text');

この例では、投稿ページの本文の末尾に任意の文章を追加しています。


アクションとフィルターの違いと使い分け

項目アクションフックフィルターフック
目的処理を追加するデータを加工する
戻り値不要必要(加工後の値を返す)
使用例headタグにタグ追加、カスタム投稿登録など投稿タイトルや本文の変更、出力の整形など
  • 「処理を追加」したい → add_action()
  • 「値を加工」したい → add_filter()

と覚えると分かりやすいです。


よく使われる代表的なフック一覧

よく使うアクションフック

// WordPressの初期化時に処理を追加する(カスタム投稿タイプの登録などによく使う)
add_action('init', 'my_init_function');

// CSSやJSファイルを読み込むタイミングで使う(enqueue処理に必須)
add_action('wp_enqueue_scripts', 'enqueue_my_scripts');

// テーマセットアップ時(サポート機能追加など)
add_action('after_setup_theme', 'theme_setup_function');

// 管理画面の読み込み時(管理画面用CSS/JS読み込みなど)
add_action('admin_enqueue_scripts', 'enqueue_admin_assets');

// 投稿保存時のフック(カスタムフィールドの自動保存などに)
add_action('save_post', 'my_save_post_handler');

// ユーザーログイン直後の処理(リダイレクトなど)
add_action('wp_login', 'on_user_login', 10, 2);

よく使うフィルターフック

// 投稿タイトルを加工(例:「[重要]」を付ける)
add_filter('the_title', 'customize_title');

// 抜粋の長さを変更(デフォルトは55語)
add_filter('excerpt_length', 'change_excerpt_length');

// アップロードできるMIMEタイプを追加(SVG画像など)
add_filter('upload_mimes', 'add_custom_mime_types');

// ユーザー名の表示方法をカスタマイズ(ニックネーム表示など)
add_filter('the_author', 'customize_author_display');

// ログインエラーメッセージの変更(セキュリティ対策)
add_filter('login_errors', 'customize_login_error_message');

// WooCommerceの価格表示をカスタマイズ(税抜/税込切替など)
add_filter('woocommerce_get_price_html', 'custom_price_display');

どのフックが使えるかは、WordPress CodexHook Listなどで確認するのがおすすめです。


まとめ:アクションとフィルターを理解して開発に活かそう

WordPressのフックは、柔軟にカスタマイズを実現するための最重要要素です。アクションフックとフィルターフックの違いを理解して使い分けることで、より堅牢で拡張性の高いテーマやプラグインを開発できます。

特に、add_action()は処理の追加、add_filter()は値の加工と覚えることで、迷わず使えるようになります。この記事を参考に、実際の開発で積極的にフックを活用してみてください。

Contact

ウェブサイトの制作や運用に関わる
お悩みやご相談
お気軽にお問い合わせ下さい

ウェブサイトと一口に言っても、企業サイトやECサイト、ブログ、SNSなど、その“カタチ”は目的に応じてさまざまであり、構築方法や使用する技術も大きく異なります。株式会社コナックスでは、お客様のご要望やブランドの個性を丁寧に汲み取り、最適なウェブサイトの“カタチ”をご提案いたします。

デザイン、ユーザビリティ、SEO対策はもちろん、コンテンツ制作やマーケティング戦略に至るまで、あらゆるフェーズでお客様のビジネスに寄り添い、成果につながるウェブサイトづくりをサポートいたします。私たちは、ウェブサイトの公開をゴールではなくスタートと捉え、お客様のビジネスの成功に向けて共に伴走してまいります。