- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
プラグイン API/アクションフック一覧
この記事は(おそらくほぼ完全な)アクションフックの一覧です。アクションフックはバージョン2.1以降から、プラグインおよびテーマ開発時に利用できるようになっています。詳しい情報については下記もご覧下さい。
- フィルターフック、アクションフックについてもっと詳しく知るには、プラグイン API をご覧下さい。
- プラグインの書き方については、プラグインの作成 をご覧下さい。
- フィルターフックの一覧リファレンスは、プラグイン API/フィルターフック一覧をご覧下さい。
- 他のバージョンのプラグインフックについては、Plugin API/Hooks 2.0.x(英語)をご覧下さい。
注: もしこの文書に情報を追加したり、内容をより分かりやすく書き換えたい場合は、現在のスタイルに従って編集を行ってください。
目次
一般的リクエスト中に実行されるアクション
以下はバージョン 3.0.1でログインしているユーザーがホームページを表示したときに実行されるアクションです。この一覧には、アクションが最初に呼び出される際のみの情報が含まれています。テーマやプラグインによってさらに違ったタイミングで何度かアクションが呼び出されることもあります。その証拠に、Twenty Ten テーマ特有のアクションコールも以下に見ることができます。また、Cron タスクもサイト訪問の際にアクションを実行することがあります。以下の一覧は明確なスペックではなく大体の目安として参照してください。
- muplugins_loaded
- plugins_loaded
- sanitize_comment_cookies
- setup_theme
- load_textdomain
- after_setup_theme
- auth_cookie_malformed
- set_current_user
- init
- widgets_init
- register_sidebar
- wp_register_sidebar_widget
- wp_loaded
- parse_request*
- send_headers*
- pre_get_posts*
- posts_selection
- wp*
- template_redirect
- get_header
- wp_head
- wp_enqueue_scripts
- wp_print_styles
- wp_print_scripts
- get_template_part_loop
- loop_start*
- the_post*
- loop_end*
- get_sidebar
- dynamic_sidebar
- get_search_form
- parse_query*
- wp_meta
- get_footer
- twentyten_credits
- wp_footer
- wp_print_footer_scripts
- shutdown
アクション名のあとにアスタリスク(*) が付いているものは配列参照アクションであることを意味します。
管理画面リクエスト中に実行されるアクション
以下はバージョン 3.0.1でログインしているユーザーが管理画面の投稿ページを表示したときに実行されるアクションです。この一覧には、アクションが最初に呼び出される際のみの情報が含まれています。表示している管理画面ページや使っているプラグインによって違ったアクションが呼び出されます。以下の一覧は明確なスペックではなく大体の目安として参照してください。
- muplugins_loaded
- plugins_loaded
- sanitize_comment_cookies
- setup_theme
- load_textdomain
- after_setup_theme
- auth_cookie_valid
- set_current_user
- init
- widgets_init
- register_sidebar
- wp_register_sidebar_widget
- wp_loaded
- auth_redirect
- wp_default_scripts*
- _admin_menu
- admin_menu
- admin_init
- load-edit.php
- parse_request*
- send_headers*
- parse_query*
- pre_get_posts*
- posts_selection
- wp*
- admin_xml_ns
- wp_default_styles*
- admin_enqueue_scripts
- admin_print_styles-edit.php
- admin_print_styles
- admin_print_scripts-edit.php
- admin_print_scripts
- wp_print_scripts
- admin_head-edit.php
- admin_head
- in_admin_header
- adminmenu
- admin_notices
- restrict_manage_posts
- the_post*
- in_admin_footer
- admin_footer
- admin_print_footer_scripts
- wp_print_footer_scripts
- admin_footer-edit.php
- shutdown
アクション名のあとにアスタリスク(*) が付いているものは配列参照アクションであることを意味します。
投稿、ページ、添付ファイル、カテゴリー関連のアクション
- add_attachment
- データベースに添付ファイルが新規追加された際に実行する。
- アクション関数引数: 添付ファイル ID
- add_category
- create_category と同様。
- clean_post_cache
- 投稿キャッシュのクリア後に実行する。clean_post_cache() を参照。
- アクション関数引数: 投稿 ID
- create_category
- カテゴリーが新規作成された際に実行する。
- アクション関数引数: カテゴリー ID
- delete_attachment
- データベースから添付ファイルが削除された直後に実行する。
- アクション関数引数: 添付ファイル ID
- delete_category
- データベースからカテゴリーが削除され、属していたリンク項目や投稿などからそのカテゴリー情報が削除された後に実行する。
- アクション関数引数: カテゴリー ID
- delete_post
- 投稿またはページが削除される直前に実行する。
- アクション関数引数: 投稿 ID またはページ ID
- deleted_post
- 投稿またはページが削除された直後に実行する。
- アクション関数引数: 投稿 ID またはページ ID
- edit_attachment
- データベースで添付ファイル情報が編集・更新された際に実行する。
- アクション関数引数: 添付ファイル ID
- edit_category
- カテゴリーが更新・編集する際に実行する。これには、そのカテゴリーに属する投稿やリンクが追加・削除された場合(カテゴリー内の項目数が更新される)も含む。
- アクション関数引数: カテゴリー ID
- edit_post
- 投稿またはページが更新・編集された際に実行する。これには、コメントが追加・更新された場合(投稿またはページのコメント数が更新される)も含む。
- アクション関数引数: 投稿 ID またはページ ID
- pre_post_update
- 投稿またはページが更新される直前に実行する。
- アクション関数引数: 投稿 ID
- private_to_publish
- (投稿ステータス遷移も参照)投稿のステータスが非公開から公開へ変更された際に実行する。
- アクション関数引数: 投稿オブジェクト(すべてのステータス変更に実行するアクションもある。wp_transition_post_status() を参照)
- publish_page
- 投稿・ページが公開された際、またはステータスが「公開」に変更された場合に実行する。
- アクション関数引数: ページ ID
- 注: バージョン2.3以上ではこのフックの代わり にwp_transition_post_status() を使用する。
- publish_phone
- メールから投稿が公開された直後に実行する。
- アクション関数引数: 投稿 ID
- publish_post
- 投稿が公開された際、または公開済み投稿の情報が編集された際に実行する。
- アクション関数引数: 投稿 ID
- save_post
- インポート機能の利用、投稿・ページ編集フォームの利用、XMLRPCでの投稿、メールでの投稿のうちいずれかの方法で投稿・ページが作成・更新された際に実行する。実行されるタイミングはデータがデータベースに保存された後。
- アクション関数引数: 投稿 ID
- 投稿 ID は最後に保存した投稿ではなく投稿履歴を参照していることもある。実際の投稿の ID を取得するには、wp_is_post_revision を使う。
- wp_insert_post
- 動作はsave_postと同じ。
save_post
の直後に実行する。
- xmlrpc_publish_post
- XMLRPC リクエストによる投稿が作成された際、または XMLRPC を通してステータスが「公開」に変更された際に実行する。
- アクション関数引数: 投稿 ID
コメント、ピンバック、トラックバック関連のアクション
- comment_closed
- コメントを受け付けない指定をした投稿で、コメント送信フォームを表示しようとする際に実行する。
- アクション関数引数: 投稿 ID
- comment_id_not_found
- コメント送信フォームを表示しようとする際、投稿 ID が見つからなかった場合に実行する。
- アクション関数引数: 投稿 ID
- comment_flood_trigger
- 連続コメントエラーが検出された際、wp_dieが呼び出されてコメントを拒否する直前に実行する。
- アクション関数引数: 前回のコメント送信日時、今回のコメント送信日時
- comment_on_draft
- コメント投稿フォームまたはコメントを表示しようとしている際、投稿が非公開状態の場合に実行する。
- アクション関数引数: 投稿 ID
- comment_post
- コメントがデータベースに保存される直前に実行する。
- アクション関数引数: コメント ID、承認ステータス(spam/スパム、0/未承認、1/承認済み)
- edit_comment
- データベース内でコメントが編集・更新された後に実行する。
- アクション関数引数: コメント ID
- delete_comment
- コメントが削除される直前に実行する。
- アクション関数引数: コメント ID
- pingback_post
- ピンバックが投稿に追加された際に実行する。
- アクション関数引数: コメント ID
- pre_ping
- ピンバックが完全に処理される前に実行する。
- アクション関数引数: 処理する投稿リンクの配列、投稿のピンバック受け付け設定
- trackback_post
- 投稿にトラックバックが追加された際に実行する。
- アクション関数引数: コメント ID
- wp_blacklist_check
- コメントをブラックリストに分類するかどうかチェックするために実行する。コメントを拒否するには、関数内でwp_dieを実行するか、入力引数に設定したブラックリストキーワードが含まれるように変更することができる。
- アクション関数引数: 投稿者名、投稿者メールアドレス、投稿者URL、コメント本文、投稿者のIPアドレス、投稿者のユーザーエージェント情報
- ;wp_set_comment_status
- コメントのステータスが変更された際に実行する。
- アクション関数引数: コメント ID、変更後のステータスを表す文字列(delete/approve/spam/hold)
リンク集関連のアクション
- add_link
- リンク集にリンク項目が新規追加された際に実行する。
- アクション関数引数: リンク ID
- delete_link
- リンク集からリンク項目が削除された際に実行する。
- アクション関数引数: リンク ID
- edit_link
- リンク集のリンク項目が編集された際に実行する。
- アクション関数引数: リンク ID
フィード関連のアクション
- atom_entry (Atom フィード)
- rdf_item(RDF フィード)
- rss_item(RSS フィード)
- rss2_item(RSS2 フィード)
- 各フィードで投稿情報が表示された直後、entry または item タグを閉じる前に実行する。
- atom_head (Atom フィード)
- rdf_header(RDF フィード)
- rss_head(RSS フィード)
- 各フィードでブログの情報が表示された直後、一つ目の投稿の直前で実行する。
- commentrss2_item
- コメントフィードにコメント情報が表示された直後、<item>タグを閉じる前に実行する。
- アクション関数引数: コメント ID、投稿 ID
- do_feed_フィード名
- RSS2、Atom、RDFなどのフィードが生成される直前に実行する。フィード名には rss2、atom などフィードの種類を入れる。フィードが表示さsれる前に実行するには、10以下のプライオリティを指定すること。
- アクション関数引数: フィードの種類(コメントフィードなら true、投稿フィードなら false)
テンプレート関連のアクション
- comment_form
- 標準のテーマにコメントを挿入するために実行する。
- アクション関数引数: 投稿 ID
- do_robots
- テンプレートファイルを選択する際、リクエストが
robots.txt
に対するものの場合に実行する。
- do_robotstxt
-
do_robots
関数内でrobots.txt
ファイルに Disallow リストを表示する際に実行する。
- get_footer
- テンプレートが get_footer 関数を呼び出した際、
footer.php
ファイルが読み込まれる直前に実行する。
- get_header
- テンプレートが get_header 関数を呼び出した際、
header.php
ファイルが読み込まれる直前に実行する。
- switch_theme
- ブログのテーマが変更された際に実行する。
- アクション関数引数: 変更されたテーマの名称
- template_redirect
- リクエストされたページの表示に使用するテンプレートファイルを判断する前に実行し、プラグインがテンプレートファイルの選択を上書きできるようにする。
- 以下は(実用的ではない)例で、すべてのリクエストを現在のテーマディレクトリ内にある
all.php
ファイルにリダイレクトする。
function all_on_one () { include(TEMPLATEPATH . '/all.php'); exit; } add_action('template_redirect', 'all_on_one');
- wp_footer
- テンプレートが wp_footer 関数を呼び出す際に実行する。
wp_footer
関数は通常、ブログページの最後付近で使われる。
- wp_head
- テンプレートが wp_head 関数を呼び出す際に実行する。wp_head 関数は通常、ブログページの先頭付近の
<head>
要素内で使われる。
- wp_meta
-
sidebar.php
テンプレートが wp_meta 関数を呼び出す際に実行し、プラグインがサイドバーにコンテンツを挿入することができるようにする。
- wp_print_scripts
- ページの
<head>
要素に、登録された JavaScript を出力する直前に実行する。
管理画面関連のアクション
- activate_プラグインファイル名
- プラグインを初めて有効化する際に実行する。register_activation_hook() /en を参照。
- activity_box_end
- 管理画面ダッシュボードページで、「ブログの最新状況/現在の状況」ボックス部分の最後に実行する。
- add_category_form_pre
- 管理画面で、カテゴリー追加フォームがページに表示される前に実行する。
- admin_head
- 管理画面各ページ HTML の
<head>
要素内で実行する。
- admin_head-ページフック名
- admin_head-プラグイン管理ページ名
- プラグインが生成した管理画面ページの
<head>
要素内で実行する。
- admin_init
- 管理画面各ページの最初、ページがレンダリングされる前に実行する。wp-admin/admin.php、wp-admin/admin-post.php、wp-admin/admin-ajax.php を参照。
- admin_footer-(plugin_page)
- プラグインが生成した管理画面ページの
<body>
要素の最後で実行する。
- admin_footer
- 管理画面各ページの
<body>
要素の終盤で実行する。
- admin_print_scripts
- 管理画面各ページの
<head>
要素に JavaScript を追加するために実行する。
- admin_print_styles
- 管理画面各ページの
<head>
要素に CSS を追加するために実行する。
- admin_print_scripts-ページフック名
- admin_print_scripts-プラグイン管理ページ名
- プラグインが生成した管理画面ページの
<head>
要素に JavaScript を追加するために実行する。「ページフック名」は add_management_page()、add_options_page() などのプラグインメニュー項目を追加する関数を使った場合に返される。例は以下のとおり。
function myplugin_menu() { if ( function_exists('add_management_page') ) { $page = add_management_page( 'myplugin', 'myplugin', 9, __FILE__, 'myplugin_admin_page' ); add_action( "admin_print_scripts-$page", 'myplugin_admin_head' ); } }
- check_passwords
- 新規ユーザー登録の際、パスワードの二重入力がマッチするか確認するために実行する。
- アクション関数引数: ログイン名配列、1度目に入力されたパスワード、2度目に入力されたパスワード
- dbx_post_advanced(投稿)
- dbx_page_advanced(ページ)
- 各編集管理画面の、詳細オプション部分の最後に実行する。
- dbx_post_sidebar(投稿)
- dbx_page_sidebar(ページ)
- 各編集管理画面のサイドバー部分の最後に実行する。WordPress 2.5以上では add_meta_box() を使用すること。
- deactivate_プラグインファイル名
- プラグインが無効化された際に実行する。
- delete_user
- ユーザーが削除された際に実行する。
- アクション関数引数: ユーザー ID
- edit_category_form
- カテゴリー追加・編集フォームが管理画面に表示された後、<form>要素の閉じタグの前に実行する。
- edit_category_form_pre
- カテゴリー編集フォームが管理画面に表示される前に実行する。
- edit_tag_form
- タグ編集フォームが管理画面メニューに表示される前に実行する。
- edit_tag_form_pre
- タグ追加・編集フォームが管理画面に表示された後、HTML フォームタグの最後よりも前に実行する。
- edit_form_advanced(投稿)
- edit_page_form(ページ)
- 編集画面で、詳細設定のセクションが読み込まれる直前に実行する。
- edit_user_profile
- 管理画面のユーザープロフィール編集ページ終盤で実行する。
- load-ページ名
- 管理メニューページが読み込まれる際に実行する。このアクションは通常、直接追加されることはない。
管理メニューに追加するための詳細は管理画面のカスタマイズを参照。 直接使いたい場合は add_options_page やこれに似た関数の返り値としてアクション名の「ページ名」の部分が返される。
- login_form
- ログインフォームが読み込みが完了する直前に実行する。
- login_head
- ログインページの
<head>
要素の読み込みが完了する直前に実行する。
- lost_password
- ログイン画面のパスワード紛失フォームが表示される直前に実行する。
- lostpassword_form
- パスワード紛失フォームの終盤で実行され、プラグインがフォームにフィールドを追加できるようにする。
- lostpassword_post
- ユーザーがパスワードの再発行をリクエストした際に実行する。これにより、処理の前に PHP の $_POST 変数を修正できるようになる。
- manage_link_custom_column
- リンク管理画面で不明なカラム名が存在する際に実行する。詳しくはプラグイン API/フィルターフック一覧、
manage_posts_columns
の項を参照。 - アクション関数引数: カラム名、リンク ID
- manage_posts_custom_column
- 投稿管理画面で不明なカラム名が存在する際に実行する。詳しくはプラグイン API/フィルターフック一覧、
manage_posts_columns
(カスタムカラムを追加する)の項を参照。 - アクション関数引数: カラム名、リンク ID
- mce_options
- リッチテキストエディター用に出力された、JavaScript設定リストの最後で実行する。
- password_reset
- ユーザーのパスワードがランダムな新パスワードにリセットされる前に実行する。
- personal_options_update
- ユーザーが管理画面から個人設定を更新した際に実行する。
- plugins_loaded
- すべてのプラグインが読み込まれた後に実行する。
- profile_personal_options
- ユーザープロフィールページの個人設定編集部分が読み込まれる終盤で実行する。
- profile_update
- ユーザープロフィールが更新された際に実行する。
- アクション関数引数: ユーザー ID
- register_form
- 新規ユーザー登録フォームの終わり直前で実行する。
- register_post
- 新規ユーザー登録リクエストが処理される前に実行する。
- restrict_manage_posts
- 管理画面で編集する投稿の一覧が出力される前に実行する。
- retrieve_password
- リマインダーメールを送信するためにユーザーのパスワードを取得した際に実行する。
- アクション関数引数: ユーザーのログイン名
- set_current_user
- デフォルトの wp_set_current_user 関数で、ユーザーが変更された後に実行する(この関数はプラグインによる上書きが可能。詳しくはプラグイン API を参照)。
- show_user_profile
- ユーザープロフィール編集画面が読み込まれる終盤で実行する。
- simple_edit_form
- 詳細設定のセクションが含まれない「シンプルモード」記事投稿フォームの終盤で実行する。デフォルトではシンプルモードフォームが使われるのはブックマークレットからの投稿のみ。
- update_option_オプション名
- update_option 関数でブログの設定を更新した後に実行する。例えばfooという設定が更新された場合にアクションを加えたい場合は、update_option_foo というアクションフックを定義する。
- アクション関数引数: 古い設定値、新しい設定値
- upload_files_タブ
- アップロードファイル管理画面を出力する際に実行する。タブ名にはカスタムアクションのタブ名を入れ、wp_upload_tabs フィルターでカスタムタブを定義する。詳しくはプラグイン API/フィルターフック一覧、wp_upload_tabs の項を参照。
- user_register
- ユーザーのプロフィールを新規追加する際に実行する。
- アクション関数引数: ユーザー ID
- wp_ajax_アクション名
- 管理画面で、不明なタイプのAJAXアクションを行うために実行する。
- wp_authenticate
- ユーザーのログイン認証時に実行する。
- アクション関数引数: ユーザー名とパスワードの配列
- wp_login
- ユーザーがログインした際に実行する。
- wp_logout
- ユーザーがログアウトした際に実行する。
ダッシュボード「現在の状況」ウィジェットアクション
- right_now_content_table_end
- 「現在の状況」ダッシュボードウィジェットの下にテーブル行を追加する。
- right_now_table_end
- スパムコメント数が「現在の状況」ウィジェットのディスカッションカラムに表示された後に呼び出される。
- right_now_discussion_table_end
- スパムコメント数が表示された後、さらに「現在の状況」ウィジェットのディスカッションカラムで right_now_table_end アクションの後に呼び出される。
- right_now_end
- 現在のバージョン情報が「現在の状況」ウィジェット上に表示された直後に呼び出される。
- activity_box_end
- 「現在の状況」ウィジェットで呼び出される最後のアクション。
その他の高度なアクション
このセクションでは、表示する投稿を判断するクエリ、WordPressループ、プラグインの有効化など、WordPressの基本的なコードに関連する高度なアクションを紹介しています。
- admin_menu
- 管理画面メニューの基本構造が配置された後に実行する。
- admin_notices
- 管理画面メニューがページに出力された後に実行する。
- blog_privacy_selector
- デフォルトのブログプライバシー設定がページに出力された後に実行する。
- check_admin_referer
- デフォルトのcheck_admin_referrer 関数内で、セキュリティ用に nonce(セッションをユニークにするための暗号化に使われる乱数)を確認した後に実行する(この関数はプラグインによる上書きが可能。詳しくはプラグイン API を参照)。
- check_ajax_referer
- ユーザーのログイン IDとパスワードが Cookie によって認証された後、デフォルトの check_ajax_referer 関数内で実行する。これを使い、認証ができなかった場合のセキュリティを高めることができる。check_ajax_referer 関数は wp-admin/admin-ajax.php スクリプトに対して AJAX リクエストがあった場合に呼び出される(この関数はプラグインによる上書きが可能。詳しくはプラグイン API を参照)。
- generate_rewrite_rules
- URL リライトルールが生成された後に実行する。
- アクション関数引数: WP_Rewrite クラスの変数リスト
- 注: リライトルールを修正するには、このアクションよりも rewrite_rules_array フィルターの方が使いやすい。
- init
- WordPressの読み込みが完了し、ヘッダーが送信される前に実行する。$_GET や $_POST トリガーを妨害するために使える。
- loop_end
- 最後のWordPressループが処理された後に実行する。
- loop_start
- 最初の WordPress ループが処理される前に実行する。
- parse_query
- クエリ解析の終盤で実行する。
- アクション関数引数: $wp_queryオブジェクトの内容(リスト形式)
- parse_request
- クエリリクエストが wp 関数内で解析された後に実行する。
- アクション関数引数: $wp オブジェクトへの参照を含む配列
- pre_get_posts
- get_posts関数クエリの前に実行する。
- アクション関数引数: $wp_query オブジェクトの内容(リスト形式)
- sanitize_comment_cookies
- HTTPリクエストからCookieが読み取られた後に実行する。
- send_headers
- wp関数内でHTTPヘッダーが送信された後に実行する。
- アクション関数引数: グローバル $wp オブジェクトへの参照がある配列
- shutdown
- ページの出力が完全に終了した際に実行する。
- wp
- wp 関数内でクエリが解析されて投稿が読み込まれ、テンプレートが実行されるまでの間に実行する。出力にテンプレートを必要しないデータにアクセスする場合に活用できる。
- アクション関数引数: $wpオブジェクトへの参照を含む配列
これも読んでみよう
- プラグインの作成 - プラグイン作成方法の説明
- プラグイン API - フィルターやアクションの使い方に関する記事
- プラグイン・リソース - プラグインに関するリソースの総合的な一覧
- Skippy's list アクションとフィルターの一覧
- WordPress Hooks, WordPress の全フックに関する要覧
- WordPress Hooks Database WordPress フックすべてのデータベース。どのバージョンから存在するかや、フックが使われる部分のソースコードへのリンク。
- Angsuman's listドキュメントとソースコード付きの WordPress アクションフックの総合的なリスト。WordPress 2.0 におけるアクションフックで明文化されているものと、されていないものの両方を含む。
最新英語版: WordPress Codex » Plugin API/Action Reference (最新版との差分)