Вопрос или проблема
Я добавляю плагин jQuery на сайт, над которым работаю. Не нужно и говорить, что это требует загрузки пользовательского скрипта; также требуется пользовательская таблица стилей.
Начав с таблицы стилей, я пытался подойти к этому обычным способом, используя wp_register_style()
и wp_enqueue_style()
следующим образом:
if ( ! function_exists( 'add_additional_css' ) ) {
function add_additional_css() {
wp_enqueue_style( 'webmarket-child', get_stylesheet_uri() , array( 'main' ) );
wp_register_style( 'slick', get_stylesheet_directory_uri() . '/slick/slick.css', array( 'jquery' ) );
wp_enqueue_style( 'slick' );
}
add_action( 'wp_enqueue_scripts', 'add_additional_css', 20 )
Это из functions.php
моей дочерней темы, поэтому он также включает в себя зарегистрированный стиль ‘webmarket-child’.
Я проверил и перепроверил свой код, и думаю, что ничего не из ряда вон выходящего, но таблица стилей не загружается.
Что может мешать этому загружаться?
Касательно: Когда я изначально создавал дочернюю тему, у меня были проблемы с загрузкой таблицы стилей дочерней темы. Только добавив приведенный выше код, я смог заставить таблицу стилей загрузиться. Лучшей практикой является:
add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
это не сработало. Я не могу не думать, что причина, по которой это не сработало, также может быть связана с тем, почему я не могу загрузить дополнительную таблицу стилей.
Эй, пожалуйста, включите таблицу стилей вот так:
<?php
add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'parent-style', get_stylesheet_uri() );
}
А также таблица стилей не требует загрузки jQuery, поэтому, пожалуйста, измените ваш код вот так:
if ( ! function_exists( 'add_additional_css' ) ) {
function add_additional_css() {
wp_enqueue_style( 'webmarket-child', get_stylesheet_uri() , array( 'main' ) );
wp_register_style( 'slick', get_stylesheet_directory_uri() . '/slick/slick.css');
wp_enqueue_style('slick');
}
add_action( 'wp_enqueue_scripts', 'add_additional_css', 20 )
Я думаю, это сработает нормально.
У вас неправильный массив зависимостей в этой строке:
wp_register_style( 'slick', get_stylesheet_directory_uri() . '/slick/slick.css', array( 'jquery' ) );
Смотрите, вы хотите загрузить файл slick.css, но он зависит от jquery CSS, который не существует.
Зависимость jQuery доступна только для скриптов.
Если вы хотите использовать slick slider CSS и JS, вы можете регистрировать скрипты.
if ( ! function_exists( 'add_additional_css' ) ) {
//Регистрация скриптов
add_action('wp_enqueue_scripts', 'add_additional_css', 20);
function wp_enqueue_all_scripts(){
//добавление slick slider
wp_register_style('slickcss', get_template_directory_uri() . '/slick/slick.css' );
//загрузка slick js
wp_register_script('slickslider', get_template_directory_uri() . '/slick/slick.min.js', array('jquery'), '', true );
//загрузка скрипта инициализации slick
wp_register_script( 'slickinit', get_template_directory_uri() . '/your-custom-folder/js/custom-slick-init.js', array( 'jquery' ) );
// загрузка slick на страницу
wp_enqueue_style( 'slickcss' );
wp_enqueue_script ('slickslider');
wp_enqueue_script ('slickinit');
}
}
Ответ или решение
Почему не загружается мой пользовательский CSS?
Если вы столкнулись с проблемой загрузки пользовательского CSS в вашем WordPress-сайте, важно понять, что может быть причиной этого. Ваша ситуация касается добавления стилизации при помощи плагина jQuery, что требует правильной регистрации и подключения CSS-файлов. Рассмотрим ключевые моменты и возможные проблемы, исходя из предоставленной информации.
1. Неправильная регистрация зависимостей
Одной из частых ошибок является указание неверных зависимостей в функции wp_register_style()
. В вашем коде указывается, что файл slick.css
зависит от jquery
. Однако CSS-файлы не могут иметь зависимости от JavaScript-библиотек. Например:
wp_register_style( 'slick', get_stylesheet_directory_uri() . '/slick/slick.css', array( 'jquery' ) );
Эта строка вышеуказанной функции приведет к тому, что файл slick.css
не будет загружен, так как jQuery не является CSS-зависимостью. Исправьте это, убрав зависимость jQuery:
wp_register_style( 'slick', get_stylesheet_directory_uri() . '/slick/slick.css' );
2. Правильное подключение стилей родительской темы
Если вы создаете дочернюю тему, важно убедиться, что стиль родительской темы загружается корректно. Используйте следующий код:
add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
Этот код должен быть перед вашим кодом для добавления дополнительных стилей.
3. Проверка порядка загрузки
При работе с функцией wp_enqueue_scripts
указание приоритета (числового значения) может влиять на порядок загрузки стилей. Убедитесь, что вы добавляете свои стили с правильным приоритетом. Например, если вы установите значение 20, это может помешать загрузке стилей, которые имеют более низкий приоритет.
add_action( 'wp_enqueue_scripts', 'add_additional_css', 20 );
4. Проблемы кэширования
Возможные проблемы с загрузкой стилей также могут быть связаны с кэшированием как на стороне сервера (например, кэшированный объект), так и в браузере. Очистите кэш вашего браузера и проверьте, нет ли кэширования на стороне сервера.
5. Производительность и SEO
Корректное подключение стилей и скриптов положительно сказывается на производительности вашего сайта, что в свою очередь влияет на SEO. Убедитесь, что все ваши стили загружаются оптимально, избегая лишних запросов, которые могут замедлить загрузку страниц.
Заключение
Если после исправления указанных выше моментов проблема остается, рекомендуется проверить консоль разработчика в вашем браузере на предмет ошибок загрузки ресурсов, а также убедиться, что файлы slick.css
действительно находятся по указанному пути. Важно следить за тем, как и в каком порядке ваши стили и скрипты загружаются, чтобы гарантировать их корректное отображение на сайте.
Здравствуйте! Я заметил, что у вас возникают проблемы с загрузкой пользовательского CSS в вашей дочерней теме WordPress. Хочу поделиться решением, которое может помочь вам устранить эту проблему.
1. Исправление функций подключения
В вашем коде есть несоответствие между названием функции и тем, что она делает. Вы используете
add_additional_css
вadd_action
, но внутри вызываете функцию с другим именем. Это может быть причиной того, что ваши стили не загружаются. Попробуйте объединить все в одну функцию:<?php
// Подключение стилей родительской темы
add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
// Подключение дополнительных стилей и скриптов
add_action( 'wp_enqueue_scripts', 'add_additional_assets' );
function add_additional_assets() {
// Подключение стилей дочерней темы
wp_enqueue_style( 'webmarket-child', get_stylesheet_uri(), array( 'parent-style' ) );
// Подключение стилей Slick Slider
wp_enqueue_style( 'slick-css', get_stylesheet_directory_uri() . '/slick/slick.css' );
// Подключение скриптов Slick Slider
wp_enqueue_script( 'slick-js', get_stylesheet_directory_uri() . '/slick/slick.min.js', array( 'jquery' ), null, true );
// Подключение вашего кастомного скрипта инициализации
wp_enqueue_script( 'slick-init', get_stylesheet_directory_uri() . '/js/custom-slick-init.js', array( 'jquery', 'slick-js' ), null, true );
}
?>
2. Корректное использование функций получения URL
Убедитесь, что вы используете
get_stylesheet_directory_uri()
для доступа к файлам в вашей дочерней теме. Это гарантирует, что WordPress правильно найдет пути к вашим стилям и скриптам.3. Устранение неверных зависимостей
В вашем исходном коде вы указали
array('jquery')
как зависимость для CSS-файла. Поскольку CSS не зависит от JavaScript, это может вызвать проблемы. Уберите зависимости для стилей, если они не необходимы.4. Проверка наличия файлов
Убедитесь, что файлы
slick.css
,slick.min.js
и ваш кастомный скрипт инициализации действительно существуют по указанным путям. Неправильный путь или отсутствие файла приведет к тому, что стиль или скрипт не загрузится.5. Очистка кэша
После внесения изменений не забудьте очистить кэш браузера и, если вы используете плагин кэширования на сайте, очистите и его. Это поможет убедиться, что вы видите актуальную версию сайта.
6. Проверка порядка выполнения
Порядок, в котором вы подключаете стили и скрипты, имеет значение. Сначала подключайте стили родительской темы, затем стили дочерней и дополнительные стили. То же самое касается скриптов.
7. Рекомендации по лучшим практикам
Для улучшения структуры кода и удобства поддержки рекомендуется:
Использовать понятные и консистентные имена функций и хуков.
Группировать похожие действия вместе для улучшения читабельности.
Добавлять комментарии к коду для пояснения его назначения.
Надеюсь, эти рекомендации помогут вам решить проблему с загрузкой пользовательского CSS. Если возникнут дополнительные вопросы, не стесняйтесь задавать их!
Удачи в разработке вашего сайта!