WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wp_enqueue_scripts хук-событие . WP 2.8.0

Срабатывает в момент подключения в очередь на вывод файлов стилей и скриптов.

На этот хук принято вешать функции, которые подключают стили и скрипты темы. Т.е. через этот хук принято подключать файлы стилей и скриптов: смотрите wp_enqueue_script() и wp_enqueue_style().

Это событие срабатывает в момент хука wp_head с приоритетом 1, т.е. так:

add_action( 'wp_head', 'wp_enqueue_scripts', 1 );

Использование

add_action( 'wp_enqueue_scripts', 'action_function_name_7714' );
function action_function_name_7714(){
	// action...
}

Примеры

#1 Подключение стилей и скриптов темы

Для темы/плагина правильно подключать стили и скрипты через хук wp_enqueue_scripts:

// правильный способ подключить стили и скрипты темы
add_action( 'wp_enqueue_scripts', 'theme_add_scripts' );
function theme_add_scripts() {
	// подключаем файл стилей темы
	wp_enqueue_style( 'style-name', get_stylesheet_uri() );

	// подключаем js файл темы
	wp_enqueue_script( 'script-name', get_template_directory_uri() .'/js/example.js', array(), '1.0', true );
}

Где вызывается хук

wp_enqueue_scripts()
wp_enqueue_scripts
wp-includes/script-loader.php 2537
do_action( 'wp_enqueue_scripts' );

Где используется хук (в ядре WP)

wp-includes/class-wp-customize-nav-menus.php 1255
add_action( 'wp_enqueue_scripts', array( $this, 'customize_preview_enqueue_deps' ) );
wp-includes/class-wp-customize-widgets.php 1096
add_action( 'wp_enqueue_scripts', array( $this, 'customize_preview_enqueue' ) );
wp-includes/customize/class-wp-customize-selective-refresh.php 163
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_preview_scripts' ) );
wp-includes/default-filters.php 496
add_action( 'wp_enqueue_scripts', 'wp_localize_jquery_ui_datepicker', 1000 );
wp-includes/default-filters.php 498
add_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' );
wp-includes/widgets/class-wp-widget-media.php 113
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_preview_scripts' ) );
wp-includes/widgets/class-wp-widget-text.php 61
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_preview_scripts' ) );
5 комментов
  • ошибка в вызове обработчика (theme_add_scripts вместо theme_name_scripts):

    // правильный способ подключить стили и скрипты темы
    add_action( 'wp_enqueue_scripts', 'theme_add_scripts' );
    function theme_name_scripts() {
    	// подключаем файл стилей темы
    	wp_enqueue_style( 'style-name', get_stylesheet_uri() );
    
    	// подключаем js файл темы
    	wp_enqueue_script( 'script-name', get_template_directory_uri() .'/js/example.js', array(), '1.0', true );
    }
    2
    Ответить8 мес назад #
  • Почему на этот хук принято вешать функции, а не на wp_head?

    Ответитьмесяц назад #
    • Kama7453

      Потому что так принято unknw , а так принято, потому что так логично — на хуке подключения скриптов подключать скрипты.

      А вообще, повесить можно еще много куда, только потом дебажить чуть что сложнее будет. Стандарты нужны, чтобы всем сразу было понятно что и где должно лежать и что и где нужно искать...

      П.С. ну и вопрос у тебя конечно... smile

      1
      Ответитьмесяц назад #
Здравствуйте, !     Войти . Зарегистрироваться