Подключение js в functions.php в Wordpress

12
Weblady
На сайте с 26.07.2011
Offline
143
865

Добрый день!

Были добавлены скрипты в теме в файле footer.php под кодом

<?php wp_footer(); ?>

<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/jquery.js"></script><!-- jquery -->

<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/bootstrap.js"></script><!-- Bootstrap Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/jquery.flexslider.js"></script><!-- Flexslider Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/jquery.easytabs.min.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/easytabs-settings.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/jquery.magnific-popup.js"></script>
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/link-scroll.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/popup-setting.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/countdown.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/owl.carousel.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/owl.carousel.min.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/owl-settings.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/settings.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/forms.js"></script><!-- Contact Form Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/modernizr-2.6.2.min.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/jquery.zoomslider.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/jquery.zoomslider.min.js"></script><!-- Settings Js -->
<script src="<?php echo get_stylesheet_directory_uri(); ?>/js/share.js"></script><!-- Share Js -->

Правильнее подключать js в файле functions.php, сделала вот так:

function my_scripts_method() {

wp_enqueue_script( 'jquery', get_template_directory_uri() . '/js/jquery.js' );
wp_enqueue_script( 'bootstrap', get_template_directory_uri() . '/js/bootstrap.js', true );
wp_enqueue_script( 'jquery.flexslider', get_template_directory_uri() . '/js/jquery.flexslider.js', true, array('jquery') );
wp_enqueue_script( 'jquery.easytabs.min', get_template_directory_uri() . '/js/jquery.easytabs.min.js', true, array('jquery') );
wp_enqueue_script( 'easytabs-settings', get_template_directory_uri() . '/js/easytabs-settings.js', true );
wp_enqueue_script( 'jquery.magnific-popup', get_template_directory_uri() . '/js/jquery.magnific-popup.js', true, array('jquery') );
wp_enqueue_script( 'link-scroll', get_template_directory_uri() . '/js/link-scroll.js', true );
wp_enqueue_script( 'popup-setting', get_template_directory_uri() . '/js/popup-setting.js', true );
wp_enqueue_script( 'countdown', get_template_directory_uri() . '/js/countdown.js', true );
wp_enqueue_script( 'owl.carousel', get_template_directory_uri() . '/js/owl.carousel.js', true );
wp_enqueue_script( 'owl.carousel.min', get_template_directory_uri() . '/js/owl.carousel.min.js', true );
wp_enqueue_script( 'owl-settings', get_template_directory_uri() . '/js/owl-settings.js', true );
wp_enqueue_script( 'settings', get_template_directory_uri() . '/js/settings.js', true );
wp_enqueue_script( 'forms', get_template_directory_uri() . '/js/forms.js', true );
wp_enqueue_script( 'modernizr-2.6.2.min', get_template_directory_uri() . '/js/modernizr-2.6.2.min.js', true );
wp_enqueue_script( 'jquery.zoomslider', get_template_directory_uri() . '/js/jquery.zoomslider.js', true, array('jquery') );
wp_enqueue_script( 'jquery.zoomslider.min', get_template_directory_uri() . '/js/jquery.zoomslider.min.js', true, array('jquery') );
wp_enqueue_script( 'share', get_template_directory_uri() . '/js/share.js', true );

}
add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

После очистки кеша страница сайта не открывается видимо из-за неработающих скриптов. При просмотре исходного кода страницы ссылки на js верные.

Помогите, пожалуйста, правильно подключить скрипты в functions.php

LEOnidUKG
На сайте с 25.11.2006
Offline
1733
#1
После очистки кеша страница сайта не открывается

Что значит не открывается?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Weblady
На сайте с 26.07.2011
Offline
143
#2

Крутится loader.gif, но контент не показывается, как будто какой-то скрипт не подгрузился.

LEOnidUKG
На сайте с 25.11.2006
Offline
1733
#3
webledi:
Крутится loader.gif, но контент не показывается, как будто какой-то скрипт не подгрузился.

В смысле какой то? :)

Ну откройте консоль разработчика в браузере и посмотрите на ошибки.

Weblady
На сайте с 26.07.2011
Offline
143
#4

Показывает вот такие ошибки:

Uncaught TypeError: $ is not a function
at easytabs-settings.js:8
at easytabs-settings.js:15
link-scroll.js:4 Uncaught TypeError: $ is not a function
at link-scroll.js:4
popup-setting.js:7 Uncaught TypeError: $ is not a function
at popup-setting.js:7
at popup-setting.js:30
owl-settings.js:12 Uncaught TypeError: $ is not a function
at owl-settings.js:12
at owl-settings.js:49
settings.js:28 Uncaught TypeError: $ is not a function
at settings.js:28
at settings.js:106
forms.js:14 Uncaught TypeError: $ is not a function
at forms.js:14
at forms.js:137

Это ошибка в самих скриптах или ошибка подключения скриптов?

Если добавить вывод скриптов в файле footer.php, то такие ошибки консоль не показывает.

T7
На сайте с 19.09.2018
Offline
63
#5
webledi:
get_stylesheet_directory_uri

Жесть😮 Сколько ж раз дернули функцию, где (не поленился) вызываются еще 2 функции:


#https://wp-kama.ru/function/get_stylesheet_directory_uri
function get_stylesheet_directory_uri() {
$stylesheet = str_replace( '%2F', '/', rawurlencode( get_stylesheet() ) );
$theme_root_uri = get_theme_root_uri( $stylesheet );

А там еще функции

function get_stylesheet() {
/**
* Filters the name of current stylesheet.
*
* @since 1.5.0
*
* @param string $stylesheet Name of the current stylesheet.
*/
return apply_filters( 'stylesheet', get_option( 'stylesheet' ) );
}
, которые в свою очередь
function get_option( $option, $default = false ) {
global $wpdb;

дальше не смотрел, не не удивлюсь, если и до запроса к БД с учетом global $wpdb; дойдет😂

------------------------

По теме:

С учетом

Uncaught TypeError: $ is not a function
at easytabs-settings.js:8

вероятно джиквери нет в get_stylesheet_directory_uri(). Ну или jquery не той системы, $(...).func() не функция

LEOnidUKG
На сайте с 25.11.2006
Offline
1733
#6
Uncaught TypeError: $ is not a function

JQ не подключен у вас. Вообще подключать JQ в футере это дело очень сомнительное.

---------- Добавлено 18.03.2020 в 21:04 ----------

Ну и как выше уже написали дёргать get_template_directory_uri() не нужно каждый раз.

Хотя оптимизация и разработчики на WP, это вообще люди из разных миров :)

S
На сайте с 30.09.2016
Offline
469
#7
webledi:
сделала вот так:

Ничего не смущает?

get_stylesheet_directory_uri()

get_template_directory_uri()
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
LEOnidUKG
На сайте с 25.11.2006
Offline
1733
#8

Хотя вот подключение файлов из официальной темы:

Поэтому думаю, там какой-то кэш срабатывает для этого.

---------- Добавлено 18.03.2020 в 21:10 ----------

Sitealert:
Ничего не смущает?
get_stylesheet_directory_uri()

get_template_directory_uri()

Блин, точняк, функции разные :D

Weblady
На сайте с 26.07.2011
Offline
143
#9

get_stylesheet_directory_uri()

get_template_directory_uri()

По обоим кодам показываются правильные пути к скриптам.

Напишите, пожалуйста, правильный код для функции подключения, и чтобы не дергать функцию много раз.

S
На сайте с 30.09.2016
Offline
469
#10

Сайт покажите.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий