Как получить последовательность запуска крюка WordPress?

В каком порядке /последовательности выполняются add_action?

то есть.

init
wp_head
wp_footer
after_theme_setup 
etc...
???
???
???




EDIT:

Я также разместил свое решение.

40 голосов | спросил T.Todua 29 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 29 Sep 2014 11:59:23 +0400 2014, 11:59:23

5 ответов


68
  

«Данные! Данные!» - нетерпеливо воскликнул он. «Я не могу делать кирпичи без   глина ".

     

Приключение медных буков

Итак, давайте соберем некоторые реальные данные из установки без плагинов, а тема TwentyTwelve активируется только с одним текстовым виджетами.

Для домашней страницы следующие вызовы do_action выполняются в следующем порядке:

muplugins_loaded
registered_taxonomy
registered_taxonomy
registered_taxonomy
registered_taxonomy
registered_taxonomy
registered_post_type
registered_post_type
registered_post_type
registered_post_type
registered_post_type
plugins_loaded
sanitize_comment_cookies
setup_theme
unload_textdomain
load_textdomain
after_setup_theme
load_textdomain
load_textdomain
auth_cookie_malformed
auth_cookie_valid
set_current_user
init
registered_post_type
registered_post_type
registered_post_type
registered_post_type
registered_post_type
registered_taxonomy
registered_taxonomy
registered_taxonomy
registered_taxonomy
registered_taxonomy
widgets_init
register_sidebar
register_sidebar
register_sidebar
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_register_sidebar_widget
wp_loaded
parse_tax_query
parse_tax_query
posts_selection
template_redirect
admin_bar_init
add_admin_bar_menus
get_header
wp_head
wp_enqueue_scripts
wp_print_styles
wp_print_scripts
get_template_part_content
begin_fetch_post_thumbnail_html
end_fetch_post_thumbnail_html
get_template_part_content
get_template_part_content
get_template_part_content
get_template_part_content
get_template_part_content
get_template_part_content
get_template_part_content
get_template_part_content
get_template_part_content
begin_fetch_post_thumbnail_html
end_fetch_post_thumbnail_html
get_sidebar
dynamic_sidebar_before
dynamic_sidebar
dynamic_sidebar_after
get_footer
twentytwelve_credits
wp_footer
wp_print_footer_scripts
wp_before_admin_bar_render
wp_after_admin_bar_render
shutdown

Если вы хотите проверить порядок действий и сколько раз каждый из них уволен, вы можете использовать, например:

add_action( 'shutdown', function(){
    print_r( $GLOBALS['wp_actions'] ); 
});

или эта префизированная версия:

add_action( 'shutdown', function(){
    foreach( $GLOBALS['wp_actions'] as $action => $count )
        printf( '%s (%d) <br/>' . PHP_EOL, $action, $count );

});

, чтобы получить следующий список:

muplugins_loaded (1) 
registered_taxonomy (10) 
registered_post_type (10) 
plugins_loaded (1) 
sanitize_comment_cookies (1) 
setup_theme (1) 
unload_textdomain (1) 
load_textdomain (3) 
after_setup_theme (1) 
auth_cookie_malformed (1) 
auth_cookie_valid (1) 
set_current_user (1) 
init (1) 
widgets_init (1) 
register_sidebar (3) 
wp_register_sidebar_widget (12) 
wp_loaded (1) 
parse_request (1) 
send_headers (1) 
parse_tax_query (2) 
parse_query (1) 
pre_get_posts (1) 
posts_selection (1) 
wp (1) 
template_redirect (1) 
wp_default_scripts (1) 
wp_default_styles (1) 
admin_bar_init (1) 
add_admin_bar_menus (1) 
get_header (1) 
wp_head (1) 
wp_enqueue_scripts (1) 
wp_print_styles (1) 
wp_print_scripts (1) 
loop_start (1) 
the_post (10) 
get_template_part_content (10) 
begin_fetch_post_thumbnail_html (2) 
end_fetch_post_thumbnail_html (2) 
loop_end (1) 
get_sidebar (1) 
dynamic_sidebar_before (1) 
dynamic_sidebar (1) 
dynamic_sidebar_after (1) 
get_footer (1) 
twentytwelve_credits (1) 
wp_footer (1) 
wp_print_footer_scripts (1) 
admin_bar_menu (1) 
wp_before_admin_bar_render (1) 
wp_after_admin_bar_render (1) 
shutdown (1) 

PS: Вы также должны проверить отличный плагин Монитор запросов Blackbourn. (Я не связан с этим плагином)

ответил birgire 29 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 29 Sep 2014 13:04:02 +0400 2014, 13:04:02
17

Вот график загрузки WordPress

Карта загрузки WordPress

â † ' Источник @Rarst

ответил Robert hue 29 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 29 Sep 2014 12:04:06 +0400 2014, 12:04:06
2

Найденное решение!

Спасибо @birgire за хороший ответ. Я добавлю, что muplugins_loaded иногда не запускается, поэтому я буду использовать plugins_loaded как самый первый крючок (но в то время пользователь -авторизация еще не завершена. Если вы хотите проверить авторизацию пользователя, то init является самым ранним для этого) ...

p.s. существуют отличные плагины:

1) Монитор запросов - вы можете видеть все что происходит при загрузке страницы, т.е. длительности каждой выполненной функции и многое другое (просмотр всех скриншотов на странице плагина):

 введите описание изображения здесь>> </a> </p>

<strong> <strong> <strong> strong> <a href= WP-DEBUG-SLOW-ACTIONS :
a) отладочные крючки ( действия ) список запуска на вашем сайте.
b) См. продолжительность каждого действия (не функция): введите описание изображения здесь

ответил T.Todua 23 SatEurope/Moscow2017-12-23T23:22:50+03:00Europe/Moscow12bEurope/MoscowSat, 23 Dec 2017 23:22:50 +0300 2017, 23:22:50
1

Нет двух одинаковых запросов. Быстрый и грязный (но очень точный) способ узнать, что происходит, - это временно добавить строку в начало функции do_action в wp-includes/plugin.php, который регистрирует тег $tag, например:

if (isset($some_get_or_post_trigger_var)) file_put_contents(ABSPATH . 'action.log', "$tag\n", FILE_APPEND);
ответил Walf 24 52017vEurope/Moscow11bEurope/MoscowFri, 24 Nov 2017 11:48:48 +0300 2017, 11:48:48
1

Базовая последовательность также может быть найдена в официальных документах:

https://codex.wordpress.org/Plugin_API/Action_Reference

ответил Stratboy 28 Maypm18 2018, 17:57:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132