Theo thứ tự add_action
móc thực hiện?
I E
init
wp_head
wp_footer
after_theme_setup
etc...
???
???
???
BIÊN TẬP:
Tôi cũng đã đăng giải pháp của mình.
Theo thứ tự add_action
móc thực hiện?
I E
init
wp_head
wp_footer
after_theme_setup
etc...
???
???
???
Tôi cũng đã đăng giải pháp của mình.
Câu trả lời:
"Dữ liệu! Dữ liệu! Dữ liệu!" Anh sốt ruột khóc. "Tôi không thể làm gạch mà không có đất sét."
Vì vậy, hãy thu thập một số dữ liệu thực từ một bản cài đặt không có plugin và chủ đề TwentyTwelve được kích hoạt chỉ với một tiện ích Văn bản duy nhất.
Đối với trang chủ, các do_action
cuộc gọi sau được thực hiện theo thứ tự sau:
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
Nếu bạn muốn kiểm tra thứ tự các hành động và số lần mỗi lần được bắn, thì bạn có thể sử dụng ví dụ:
add_action( 'shutdown', function(){
print_r( $GLOBALS['wp_actions'] );
});
hoặc phiên bản được chỉnh sửa này:
add_action( 'shutdown', function(){
foreach( $GLOBALS['wp_actions'] as $action => $count )
printf( '%s (%d) <br/>' . PHP_EOL, $action, $count );
});
để có được danh sách sau:
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: Bạn cũng nên xem plugin Trình theo dõi truy vấn tuyệt vời của John Blackbourn. (Tôi không liên quan đến plugin này)
Dưới đây là biểu đồ tải WordPress
Cảm ơn @birgire cho câu trả lời tốt đẹp. Tôi sẽ thêm vào đó, muplugins_loaded
đôi khi không bị sa thải, vì vậy tôi sẽ sử dụng plugins_loaded
như cái móc đầu tiên nhất (nhưng tại thời điểm đó, ủy quyền của người dùng chưa được thực hiện. Nếu bạn muốn kiểm tra ủy quyền của người dùng, thì đó init
là sớm nhất cho điều đó). ..
ps tồn tại các plugin tuyệt vời:
1) Trình theo dõi truy vấn - Bạn có thể thấy mọi thứ xảy ra trên tải trang, tức là thời lượng của từng chức năng được thực hiện và hơn thế nữa (xem tất cả ảnh chụp màn hình trên trang plugin):
2) WP-DEBUG-BAR + WP-DEBUG-SLOW-HÀNH ĐỘNG :
a) danh sách chạy gỡ lỗi ( hành động ) trên trang web của bạn.
b) Xem thời lượng của mỗi hành động (không phải chức năng):
Không có hai yêu cầu hoàn toàn giống nhau. Một cách nhanh chóng và bẩn thỉu (nhưng rất chính xác) để tìm hiểu những gì đang diễn ra là tạm thời thêm một dòng vào đầu do_action
hàm trong wp-includes/plugin.php
đó ghi nhật ký $tag
, ví dụ:
if (isset($some_get_or_post_trigger_var)) file_put_contents(ABSPATH . 'action.log', "$tag\n", FILE_APPEND);
Trình tự cơ bản cũng có thể được tìm thấy trên các tài liệu chính thức: