@Nik_1011

Можно ли подключать скрипты через wp_footer()?

Здравствуйте.

Подключал через functions.php скрипты и стили.
add_action('wp_enqueue_scripts', 'theme_styles');
add_action('wp_footer', 'theme_scripts');

function theme_styles(){
  wp_enqueue_style('style', get_stylesheet_uri());
  wp_enqueue_style('bootstrap', get_template_directory_uri() . '/assets/libs/bootstrap/bootstrap-grid.min.css');
  wp_enqueue_style('font-awesome', get_template_directory_uri() . '/assets/libs/font-awesome/css/all.min.css');
  wp_enqueue_style('magnific-popup', get_template_directory_uri() . '/assets/libs/magnific-popup/magnific-popup.css');
  wp_enqueue_style('animate', get_template_directory_uri() . '/assets/libs/animate/animate.min.css');
  wp_enqueue_style('fonts', get_template_directory_uri() . '/assets/css/fonts.css');
  wp_enqueue_style('media-queries', get_template_directory_uri() . '/assets/css/media.css');
}

function theme_scripts(){
  wp_deregister_script('jquery');
  wp_register_script('jquery', get_template_directory_uri() . '/assets/libs/jQuery/jquery-2.1.3.min.js');
  wp_enqueue_script('jquery');
  wp_enqueue_script('magnific-popup', get_template_directory_uri() . '/assets/libs/magnific-popup/jquery.magnific-popup.min.js', array('jquery'), null, true);
  wp_enqueue_script('equalheights', get_template_directory_uri() . '/assets/libs/equalHeights/equalHeights.min.js', array('jquery'), null, true);
  wp_enqueue_script('animate', get_template_directory_uri() . '/assets/libs/animate/animate-css.js', array('jquery'), null, true);
  wp_enqueue_script('waypoints', get_template_directory_uri() . '/assets/libs/waypoints/waypoints.min.js', array('jquery'), null, true);
  wp_enqueue_script('main', get_template_directory_uri() . '/assets/js/common.js', array('jquery'), null, true);
}


Все работало, но как только подключил contact form 7, все js-скрипты отключились и скрипт contact form 7 стал поверх остальных скриптов.
5f192908c410c974321830.png

Когда изменил на wp_enqueue_scripts оба хука,все заработало.
add_action('wp_enqueue_scripts', 'theme_styles');
add_action('wp_enqueue_scripts', 'theme_scripts');


Вопросы:
1) К какому событию лучше цеплять скрипты:wp_footer или wp_enqueue_scripts?
2) Почему скрипты не работали при использовании wp_footer?
3) Нормально ли, что скрипты contact-form 7 оказываются поверх остальных скриптов?
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
Kozack
@Kozack Куратор тега WordPress
Thinking about a11y
Скрипты должны подключаться по событию wp_enqueue_scripts.
Не нужно переподключать jquery
Указывайте корректные зависимости скриптов. И желательно версию тоже.
Если скрипт может быть подключен в подвале указывайте соответствующий параметр в при подключении скрипта.

ВП сам будет розруливать все зависимости между скриптами и сам решит в каком порядке их подключать. Что подключать в шапке а что в подвале.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы