商品カテゴリー すべての商品 WordPressプラグイン PHPツール Javascriptツール

WordPressアクションフックの実行順と処理回数

▼調査対象
WordPress v6.7.1 (最新版:2024/12/19現在)

フック処理の実際の実行順と処理回数を調べてみました。
有効プラグインなし、表示だけのテーマを作成し調べています。

フロント画面のフック処理の順番と回数

実行 処理回数 アクション名 内容
1 1 after_setup_themewp-settings.php
2 1 auth_cookie_malformedwp-includes/pluggable.php
3 1 set_current_userwp-includes/pluggable.php
4 16 registered_post_typewp-includes/post.php 初期状態で16個の投稿タイプ(post_type)が登録される。 post/page/attachment/revision/ nav_menu_item/custom_css/customize_changeset/oembed_cache/ user_request/wp_block/wp_template/wp_template_part/ wp_global_styles/wp_navigation/wp_font_family/wp_font_face
5 8 registered_taxonomywp-includes/taxonomy.php 初期状態で8個のタクソノミー(taxonomy)が登録される。 category/post_tag/nav_menu/link_category/ post_format/wp_theme/wp_template_part_area/wp_pattern_category
6 1 widgets_initwp-includes/widgets.php
7 18 wp_register_sidebar_widgetwp-includes/widgets.php 初期状態で18個のウィジェットが登録される。 固定ページ一覧/カレンダー/月別アーカイブ/カテゴリー/ 最近の投稿/最近のコメント/RSS/タグクラウド/ ナビゲーションメニュー/メタ情報/検索/ 音声/画像/ギャラリー/動画/ テキスト/カスタムHTML/ブロック
8 1 wp_sitemaps_initwp-includes/sitemaps.php
9 1 initwp-settings.php
10 1 wp_loadedwp-settings.php
11 2 parse_tax_querywp-includes/class-wp-query.php
12 1 posts_selectionwp-includes/class-wp-query.php
13 1 wp_cache_set_last_changedwp-includes/functions.php
14 1 parse_term_querywp-includes/class-wp-term-query.php
15 1 wp_cache_set_last_changedwp-includes/functions.php
16 1 metadata_lazyloader_queued_objectswp-includes/class-wp-metadata-lazyloader.php
17 1 template_redirectwp-includes/template-loader.php

テーマ側での処理

ここからテーマ内の画面処理。最低限の機能のテーマを作成して確認。
実行 処理回数 アクション名 内容
18 1 get_headerwp-includes/general-template.php テーマのget_header()実行時
19 1 wp_before_load_templatewp-includes/template.php
20 1 enqueue_block_assetswp-includes/block-editor.php
21 1 wp_enqueue_scriptswp-includes/script-loader.php
22 1 wp_print_styleswp-includes/functions.wp-styles.php
23 1 wp_print_scriptswp-includes/functions.wp-scripts.php
24 1 wp_headwp-includes/general-template.php テーマの wp_head() 実行時
25 1 wp_body_openwp-includes/general-template.php テーマの wp_body_open() 実行時
26 1 wp_after_load_templatewp-includes/template.php ここで header.php の処理完了
27 1 get_sidebarwp-includes/general-template.php テーマの get_sidebar() 実行時
28 1 wp_before_load_templatewp-includes/template.php
29 1 wp_after_load_templatewp-includes/template.php ここで sidebar.php の処理完了
30 1 get_footerwp-includes/general-template.php テーマの get_footer() 実行時
31 1 wp_before_load_templatewp-includes/template.php
32 1 dynamic_sidebar_beforewp-includes/widgets.php テーマの dynamic_sidebar() 実行時
33 1 dynamic_sidebar_afterwp-includes/widgets.php
34 1 wp_footerwp-includes/general-template.php テーマの wp_footer() 実行時
35 1 wp_print_footer_scriptswp-includes/script-loader.php
36 1 wp_after_load_templatewp-includes/template.php ここで footer.php の処理完了
37 1 shutdownwp-includes/load.php 全処理の完了時

管理画面のフック処理の順番と回数

管理画面のみのフックポイントがあるため処理分けが出来る。

実行 処理回数 アクション名 内容
1 1 after_setup_themewp-settings.php
2 16 registered_post_typewp-includes/post.php 初期状態で16個の投稿タイプ(post_type)が登録される。
フロント画面と同じ
3 8 registered_taxonomywp-includes/taxonomy.php 初期状態で8個のタクソノミー(taxonomy)が登録される。
フロント画面と同じ
4 1 widgets_initwp-includes/widgets.php
5 18 wp_register_sidebar_widgetwp-includes/widgets.php 初期状態で18個のウィジェットが登録される。
フロント画面と同じ
6 1 initwp-settings.php
7 1 wp_loadedwp-settings.php
8 1 auth_cookie_validwp-includes/pluggable.php
9 1 auth_redirectwp-includes/pluggable.php
10 1 wp_cache_set_last_changedwp-includes/functions.php
11 1 _admin_menuwp-admin/includes/menu.php
12 1 admin_menuwp-admin/includes/menu.php
13 1 admin_bar_initwp-includes/class-wp-admin-bar.php
14 1 add_admin_bar_menuswp-includes/class-wp-admin-bar.php
15 1 admin_initwp-admin/admin-post.php
16 1 current_screenwp-admin/includes/class-wp-screen.php
17 1 wp_dashboard_setupwp-admin/includes/dashboard.php
18 2 do_meta_boxeswp-admin/includes/dashboard.php

ここから管理画面の出力処理。

実行 処理回数 アクション名 内容
19 1 admin_enqueue_scriptswp-admin/admin-header.php
20 1 admin_print_styleswp-admin/admin-header.php
21 1 admin_print_scriptswp-admin/admin-header.php
22 1 wp_print_scriptswp-includes/functions.wp-scripts.php
23 1 admin_headwp-admin/admin-header.php
24 1 adminmenuwp-admin/menu-header.php
25 1 wp_before_admin_bar_renderwp-includes/admin-bar.php
26 1 wp_after_admin_bar_renderwp-includes/admin-bar.php
27 1 in_admin_headerwp-admin/admin-header.php
28 1 admin_noticeswp-admin/admin-header.php
29 1 all_admin_noticeswp-admin/admin-header.php
30 1 in_admin_footerwp-admin/admin-footer.php
31 1 admin_footerwp-admin/admin-footer.php
32 1 admin_print_footer_scriptswp-admin/admin-footer.php
33 1 shutdownwp-includes/load.php

WordPress REST APIのフック処理の順番と回数

WordPressでは標準のAPI処理とテーマやプラグインが登録したAPI処理が実行される。
調査環境ではプラグインなし、テーマからの登録なし。

実行 処理回数 アクション名 内容
1 1 after_setup_themewp-settings.php
2 1 auth_cookie_malformedwp-includes/pluggable.php
3 1 auth_cookie_bad_session_tokenwp-includes/pluggable.php
4 1 set_current_userwp-includes/pluggable.php
5 16 registered_post_typewp-includes/post.php 初期状態で16個の投稿タイプ(post_type)が登録される。
フロント画面と同じ
6 8 registered_taxonomywp-includes/taxonomy.php 初期状態で8個のタクソノミー(taxonomy)が登録される。
フロント画面と同じ
7 1 widgets_initwp-includes/widgets.php
8 18 wp_register_sidebar_widgetwp-includes/widgets.php 初期状態で18個のウィジェットが登録される。
フロント画面と同じ
9 1 wp_sitemaps_initwp-includes/sitemaps.php
10 1 initwp-settings.php
11 1 wp_loadedwp-settings.php
12 20 register_settingwp-includes/option.php 初期状態で20個の設定が登録される。
blogname/blogdescription/siteurl/admin_email/timezone_string/ date_format/time_format/start_of_week/WPLANG/use_smilies/ default_category/default_post_format/posts_per_page/show_on_front/page_on_front/ page_for_posts/default_ping_status/default_comment_status/site_logo/site_icon
13 1 rest_api_initwp-includes/rest-api.php
14 1 auth_cookie_malformedwp-includes/pluggable.php
15 1 auth_cookie_bad_session_tokenwp-includes/pluggable.php
16 1 set_current_userwp-includes/pluggable.php
17 2 parse_tax_querywp-includes/class-wp-query.php
18 1 posts_selectionwp-includes/class-wp-query.php
19 1 wp_cache_set_last_changedwp-includes/functions.php
20 1 wp_error_addedwp-includes/class-wp-error.php
21 1 shutdownwp-includes/load.php
著者情報
著者情報

Webサイト開発者。PHP/Javascript の開発実績2,000件以上。クラウドソーシング経由では700件ほどの受注実績あり。