Я отключил все плагины на моем WordPress и сохранил только мою очень простую активную тему. О функциях. php Я позволил запустить следующий код:
add_action( 'wp_enqueue_scripts', function() {
// Omitted some code - Here I just call a custom function to print logs
wp_debug_backtrace_summary(); // Just indicating that I call this function on log
// The script exists and is correctly added to the frontend
wp_enqueue_script( 'main-script', get_stylesheet_directory_uri() . '/assets/js/scripts.js', array('jquery'), '1.0', true );
}, 101 );
В журнале получаю, что эта функция запускается дважды - вы можете видеть выше две полезные нагрузки из wp_debug_backtrace_summary()
:
[2020-02-10 20:58:37 - ...\wp-content\themes\storms-theme\services\storms-assets.php at "backtrace" on line 42]
== Funcao de teste ===================================
Array
(
[0] => StormsFramework\Helper::backtrace
[1] => {closure}
[2] => WP_Hook->apply_filters
[3] => WP_Hook->do_action
[4] => do_action('wp_enqueue_scripts')
[5] => wp_enqueue_scripts
[6] => WP_Hook->apply_filters
[7] => WP_Hook->do_action
[8] => do_action('wp_head')
[9] => wp_head
[10] => require('/themes/storms-theme/template-parts/head.php')
[11] => load_template
[12] => locate_template
[13] => get_template_part
[14] => require_once('/themes/storms-theme/header.php')
[15] => load_template
[16] => locate_template
[17] => get_header
[18] => include('/themes/storms-theme/page.php')
[19] => require_once('wp-includes/template-loader.php')
[20] => require('wp-blog-header.php')
)
=====================================================================
[2020-02-10 20:58:37 - ...\wp-content\themes\storms-theme\services\storms-assets.php at "backtrace" on line 42]
== Funcao de teste ===================================
Array
(
[0] => StormsFramework\Helper::backtrace
[1] => {closure}
[2] => WP_Hook->apply_filters
[3] => WP_Hook->do_action
[4] => do_action('wp_enqueue_scripts')
[5] => wp_enqueue_scripts
[6] => WP_Hook->apply_filters
[7] => WP_Hook->do_action
[8] => do_action('wp_head')
[9] => wp_head
[10] => require('/themes/storms-theme/template-parts/head.php')
[11] => load_template
[12] => locate_template
[13] => get_template_part
[14] => require_once('/themes/storms-theme/header.php')
[15] => load_template
[16] => locate_template
[17] => get_header
[18] => include('/themes/storms-theme/index.php')
[19] => require_once('wp-includes/template-loader.php')
[20] => require('wp-blog-header.php')
)
Я замечаю, что элемент 18 на обеих трассировках различен:
[18] => include('/themes/storms-theme/page.php')
[18] => include('/themes/storms-theme/index.php')
Если я прокомментирую строку кода, которая ставит в очередь скрипт wp_enqueue_script( 'main-script', ... )
Получаемая полезная нагрузка говорит, что моя функция запускается только один раз!
[2020-02-10 21:13:21 - ...\wp-content\themes\storms-theme\services\storms-assets.php at "backtrace" on line 42]
== Funcao de teste ===================================
Array
(
[0] => StormsFramework\Helper::backtrace
[1] => {closure}
[2] => WP_Hook->apply_filters
[3] => WP_Hook->do_action
[4] => do_action('wp_enqueue_scripts')
[5] => wp_enqueue_scripts
[6] => WP_Hook->apply_filters
[7] => WP_Hook->do_action
[8] => do_action('wp_head')
[9] => wp_head
[10] => require('/themes/storms-theme/template-parts/head.php')
[11] => load_template
[12] => locate_template
[13] => get_template_part
[14] => require_once('/themes/storms-theme/header.php')
[15] => load_template
[16] => locate_template
[17] => get_header
[18] => include('/themes/storms-theme/page.php')
[19] => require_once('wp-includes/template-loader.php')
[20] => require('wp-blog-header.php')
)
Понятия не имею, что здесь не так. Почему работает дважды?