Dalam rangka apa add_action
kait dieksekusi?
yaitu
init
wp_head
wp_footer
after_theme_setup
etc...
???
???
???
SUNTING:
Saya juga memposting solusi saya.
Dalam rangka apa add_action
kait dieksekusi?
yaitu
init
wp_head
wp_footer
after_theme_setup
etc...
???
???
???
Saya juga memposting solusi saya.
Jawaban:
"Data! Data! Data!" dia menangis tidak sabar. "Aku tidak bisa membuat batu bata tanpa tanah liat."
Jadi mari kita kumpulkan beberapa data nyata dari instalasi tanpa plugin dan tema TwentyTwelve diaktifkan hanya dengan satu widget teks.
Untuk beranda, do_action
panggilan berikut dibuat dalam urutan berikut:
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
Jika Anda ingin memeriksa urutan tindakan dan berapa kali masing-masing dipecat, maka Anda dapat menggunakan misalnya:
add_action( 'shutdown', function(){
print_r( $GLOBALS['wp_actions'] );
});
atau versi prettified ini:
add_action( 'shutdown', function(){
foreach( $GLOBALS['wp_actions'] as $action => $count )
printf( '%s (%d) <br/>' . PHP_EOL, $action, $count );
});
untuk mendapatkan daftar berikut:
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: Anda juga harus memeriksa plugin Query Monitor yang hebat oleh John Blackbourn. (Saya tidak terkait dengan plugin ini)
Berikut adalah bagan beban WordPress
Terima kasih @bgire untuk jawaban yang bagus. Saya akan menambahkan bahwa, muplugins_loaded
kadang-kadang tidak dipecat, jadi saya akan menggunakan plugins_loaded
sebagai pengait pertama (tetapi pada saat itu, otorisasi pengguna belum dilakukan. Jika Anda ingin memeriksa otorisasi pengguna, maka init
adalah yang paling awal untuk itu). ..
ps ada plugin yang sangat baik:
1) Monitor Kueri - Anda dapat melihat semua yang terjadi pada pemuatan halaman, yaitu durasi setiap fungsi yang dieksekusi dan lebih banyak lagi (lihat semua tangkapan layar pada halaman plugin):
2) WP-DEBUG-BAR + WP-DEBUG-SLOW-ACTIONS :
a ) jalankan debug hooks ( tindakan ) daftar run di situs Anda.
b) Lihat durasi setiap tindakan (tidak berfungsi):
Tidak ada dua permintaan yang persis sama. Cara cepat dan kotor (tapi sangat akurat) untuk mencari tahu apa yang terjadi adalah menambahkan sementara ke awal do_action
fungsi wp-includes/plugin.php
tempat log $tag
, misalnya:
if (isset($some_get_or_post_trigger_var)) file_put_contents(ABSPATH . 'action.log', "$tag\n", FILE_APPEND);
Urutan dasar juga dapat ditemukan pada dokumen resmi: