ワードプレスのdo_actionアクションの使用方法・解説

概要

do_action アクションは、WordPress のフックシステムの重要な部分で、特定のイベントが発生した際に他の関数を実行するためのものです。このアクションは、以下のような機能を実装する際によく使われます:

  1. プラグインのフック
  2. テーマの拡張
  3. ユーザーインターフェースのカスタマイズ
  4. データの処理
  5. カスタムウィジェットの初期化
  6. カスタムコンテンツの表示
  7. 管理画面のカスタマイズ
  8. 外部APIとの連携

構文

do_action( 'hook_name', $arg1, $arg2, ... );

パラメータ

  • hook_name: アクションフックの名前(必須)
  • $arg1, $arg2, …: フックに渡す引数(オプション)

戻り値

この関数は、戻り値を返しません。実行される関数があれば、その結果を返すことがあります。

関連する関数

do_action の関連関数

使用可能なバージョン

do_action は、WordPress の全てのバージョンで利用可能です。

コアファイルのパス

このアクションは wp-includes/plugin.php に含まれています。

サンプルコード

サンプル1: 基本的な do_action の使用

function my_custom_function() {
    echo 'Hello, World!';
}
add_action( 'my_custom_hook', 'my_custom_function' );

do_action( 'my_custom_hook' );

説明: my_custom_hook というフックを作成し、my_custom_function を関連付け、フックを実行しています。

サンプル2: 引数を渡す

function greet_user( $name ) {
    echo 'Hello, ' . $name . '!';
}
add_action( 'greet_hook', 'greet_user' );

do_action( 'greet_hook', 'Alice' );

説明: greet_hook に引数として名前を渡し、それに応じた挨拶を表示します。

サンプル3: 複数の引数

function display_info( $name, $age ) {
    echo $name . ' is ' . $age . ' years old.';
}
add_action( 'info_hook', 'display_info' );

do_action( 'info_hook', 'Bob', 30 );

説明: info_hook で名前と年齢を受け取り、その情報を表示します。

サンプル4: プラグイン内のカスタムアクション

function my_plugin_activation() {
    do_action('my_plugin_activated');
}
add_action('activated_plugin', 'my_plugin_activation');

説明: プラグインがアクティブになると、カスタムアクション my_plugin_activated が実行されます。

サンプル5: テーマで使用する

function custom_header() {
    do_action('before_header');
    // ヘッダーの出力が続く
}
add_action('wp_head', 'custom_header');

説明: wp_head アクションで呼び出し、ヘッダーが出力される前に before_header アクションを実行します。

この関数のアクションでの使用可能性

アクション名 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

非推奨または削除されたバージョン

do_action は特定のバージョンで非推奨または削除されたことはありません。

以上が do_action アクションの解説とサンプルコードです。WordPress の開発に活用してください。

この関数について質問する


上の計算式の答えを入力してください