워드프레스의 훅/액션 실행 순서 확인하는 방법, function, 플러그인 활용

워드프레스로 홈페이지 혹은 블로그를 만들 때 훅/액션은 상당히 유용하다.
플러그인을 설치하기엔 좀 과하고 간단한 기능을 추가할 때 자주 사용하게 된다.
그런데, 이 훅/액션의 실행 순서나 어떤 것들이 실행되는지 알아야 할 때가 있다.
내 경우에는 만들어보려던 플러그인에 필요해서 찾아본 내용인데 공유해보려고 한다.
시도하던 플러그인은 내 역량 부족으로 잠정 중단이나 마찬가지인 상태다… ㅠ

function.php를 활용하는 방법

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

이 코드를 사용하면(이미 오픈된 사이트에는 사용하지 않는 것을 권장한다) php가 실행되면서 화면 하단에 액션이 순서대로 호출된다.

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(){
foreach( $GLOBALS[‘wp_actions’] as $action => $count )
printf( ‘%s (%d)
‘ . 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)

이 코드는 중복되는 액션은 옆에 괄호와 숫자로 표기해주기 때문에 보기가 한결 편하다.
실행 순서와 실행되는 액션의 이름들을 확인할 수 있어서 좋다.

플러그인을 활용하는 방법

Query Monitor 플러그인을 쓰면 더 많은 정보를 얻을 수 있다.
https://wordpress.org/plugins/query-monitor/
위 주소로 들어가서 플러그인을 살펴볼 수 있는데 훅/액션 뿐만 아니라 쿼리 불러오는 것, 소요되는 시간까지 체크를 해준다.
Query Monitor는 평소 사이트를 점검하는 데에도 사용하면 좋을 것 같다.

query monitor 로고

처음 function.php에 코드를 넣는 방법은 화면 보기에도 그렇고 서버에서 불러오는 화면에 따라서도 정보가 달라질 수 있다.
하지만 Query Monitor는 더 다양한 경우의 수를 체크할 수 있으니 활용도가 높다.

query monitor screenshot

요즘 플러그인을 만들어보기 위해서 이리저리 들쑤셔보고는 있는데 영 신통치 않다.
개발은 아무나 하는 게 아닌 모양이다.
사실 단순히 훅/액션 실행 순서만 보려고 하면 워드프레스에서 제공하는 기본 문서에서도 볼 수가 있다.
https://codex.wordpress.org/Plugin_API/Action_Reference
하지만 개발을 하려고 하는 상황에서는 실제 사이트에서 이루어지는 정보가 필요할 수도 있을 테니 위 내용들이 도움이 될 수 있지 않을까…?
그렇다면 글을 본 김에 홈페이지에 있는 광고도 한 번쯤은 눌러주면 고맙겠다.
그럼 이만!

뛰어다니는 황금 고블린

내용 참고 : https://qastack.kr/wordpress/162862/how-to-get-wordpress-hooks-actions-run-sequence

댓글 달기