답변:
플러그인은 테마 바로 전에로드됩니다 (예, 이것을 사용하는 변명을 찾고 있습니다)
그러나 코드 실행 지점으로 생각하는 것은 잘못입니다. 대부분의 경우 모든 것이 init
후크 보다 먼저 후크되고 실행되어야합니다 . 코덱스 위젯 등록에 register_widget()
따라에 연결해야합니다 widget_init
.
이 경우로드 순서는 중요하지 않으므로 시간 위젯에 의해로드 된 모든 것이 필요할 때마다 필요합니다.
흥미로운 접근 방법 중 하나는 일련의 실행으로 파일에 대한 모든 후크를 나열하는 것입니다.
add_action( 'all', '_20161224_printer' );
function _20161224_printer( $r ){
$line = microtime(true)*10000 . ' ' . $r . "\n";
$fp = fopen( ABSPATH . 'hooks.txt', 'a+');
fwrite($fp, $line);
fclose($fp);
}
그리고 당신은 다음과 같은 결과를 얻을 것입니다 :
14825992300742 pre_option_blog_charset
14825992300743 option_blog_charset
14825992300743 plugins_loaded
14825992300744 load_default_widgets
14825992300745 load_default_embeds
14825992300745 wp_audio_extensions
14825992300745 wp_audio_embed_handler
14825992300746 wp_video_extensions
14825992300746 wp_video_embed_handler
14825992300746 sanitize_comment_cookies
14825992300747 pre_option_permalink_structure
14825992300747 option_permalink_structure
14825992300748 pre_option_wp_user_roles
14825992300748 option_wp_user_roles
14825992300749 wp_roles_init
14825992300749 setup_theme
14825992300749 pre_option_template
14825992300750 option_template
14825992300750 template
14825992300750 theme_root
14825992300751 template_directory
14825992300751 pre_option_stylesheet
14825992300751 option_stylesheet
14825992300751 stylesheet
14825992300752 theme_root
14825992300752 stylesheet_directory
14825992300752 pre_option_WPLANG
14825992300753 query
14825992300754 default_option_WPLANG
14825992300755 locale
14825992300755 override_unload_textdomain
14825992300755 unload_textdomain
14825992300755 override_load_textdomain
14825992300756 load_textdomain
14825992300756 load_textdomain_mofile
14825992300756 locale
...
many many more action hooks
...
14825992302886 wp_parse_str
14825992302886 nonce_life
14825992302886 salt
14825992302886 wp_parse_str
14825992302887 esc_html
14825992302887 logout_url
14825992302887 clean_url
14825992302887 gettext
14825992302887 wp_after_admin_bar_render
14825992302888 pre_option_template
14825992302888 option_template
14825992302888 template
14825992302888 theme_root
14825992302888 template_directory
14825992302889 parent_theme_file_path
14825992302889 shutdown
전체 목록은 WPSO 게시물 당 30.000 자 제한에 맞지 않기 때문에 많은 작업 후크를 제거했습니다.
위 코드를 플러그인 안에 넣습니다. 당신이 테마에서
functions.php
그렇게하면 잡을 수 없습니다plugins_loaded
. 서로 테마 전에 플러그인이로드되었음을 증명합니다.
이 검사의 장점은 많지만 호출 할 페이지 템플릿마다 또는 대시 보드에있는 경우 출력이 다를 수 있습니다.
나는 단순히 /?p=1
Hello World 페이지 에서 이것을 불렀다 .
단일 플러그인을 활성화하지 않은 경우이 코드를 mu-plugins
폴더에 넣을 수 있습니다 .
WP FS API 를 사용하는 것이 더 나을 수 있지만이 방법은 정말 간결합니다.
플러그인의 .php 파일 안에 위젯을 가질 수 있습니다 (그리고 그들이 사용할 수있는 공유 전역 변수를 가질 수도 있습니다). 다음은 내가 잠시 우연히 발견 한 샘플 코드 가있는 자습서입니다 .
또한, 여기의 전형적인 요청시 실행하는 행동의 목록 실행 순서는. # 2와 # 10은 플러그인이 먼저로드 될 것을 제안합니다. functions.php에 대해 확실하지 않습니다.