Anna_Polyakovich
@Anna_Polyakovich
Начинающий дизайнер, осваиваю html, css, js

Не подключается jquery и файлы js в Word Press. В чем причина ошибки?

Здравствуйте!
Сайт в процессе посадки на WordPress. Проект создан в Open Server.
Папки в проекте: wp-content, thems, папка с файлами php (index, header, footer и functions), папка assets с файлами стилей, изображениями и js.
Проблема в том, что не подключается jquery и файлы js.
То есть на странице есть slick slider, и он должен работать, но ничего не происходит.
Код в function:
<?php

add_action( 'wp_enqueue_scripts', function () {

	wp_enqueue_style( 'style', get_template_directory_uri() . '/assets/css/style.css' );
    wp_enqueue_style( 'media', get_template_directory_uri() . '/assets/css/media.css' );
    wp_enqueue_style( 'media', get_template_directory_uri() . '/assets/css/slick.css' );

   wp_deregister_script( 'jquery' );
	wp_register_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js');
   
	wp_enqueue_script( 'jquery' );
    wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array(jquery), 'null', true );
    wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.js', array(jquery), 'null', true );
    wp_enqueue_script( 'main', get_template_directory_uri() . '/assets/js/main.js', array(jquery), 'null', true );
    
});


add_theme_support('post-thumbnails');
add_theme_support('title-tag');
add_theme_support('custom-logo');

?>


Все работает ровно до того момента, как я подключаю эти строчки:
wp_enqueue_script( 'jquery' );
    wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array(jquery), 'null', true );
    wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.js', array(jquery), 'null', true );
    wp_enqueue_script( 'main', get_template_directory_uri() . '/assets/js/main.js', array(jquery), 'null', true );


После их подключения выдает ошибку:
Uncaught Error: Undefined constant "jquery"

В чем тут может быть дело? Я же все сделала по правилам: сначала отключила jquery, затем снова подключила, только ту версию, которая у меня в файлах, а не которую предлагает WP. Помогите, пожалуйста, разобраться!
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
Элементы массива должны быть в виде строк:
// wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array(jquery), 'null', true );
wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array('jquery'), null, true );

Зачем Вам 2 одинаковых slick.js?
// wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.js', array(jquery), 'null', true );
wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array(jquery), 'null', true );

Стили хорошо бы подключать в шапке, а скрипты в подвале, вот финальный код:
<?php
add_action('wp_enqueue_scripts', function () {
    // styles
    wp_enqueue_style('style', get_template_directory_uri() . '/assets/css/style.css');
    wp_enqueue_style('media', get_template_directory_uri() . '/assets/css/media.css');
    wp_enqueue_style('slick-style', get_template_directory_uri() . '/assets/css/slick.css');

    // jquery
    wp_deregister_script('jquery');
    wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js', [], null, true);
    wp_enqueue_script('jquery');

    // scripts
    wp_enqueue_script('slick', get_template_directory_uri() . '/assets/js/slick.min.js', ['jquery'], null, true);
    wp_enqueue_script('main', get_template_directory_uri() . '/assets/js/main.js', ['jquery'], null, true);
});

add_theme_support('post-thumbnails');
add_theme_support('title-tag');
add_theme_support('custom-logo');
?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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