Запрос таблиц стилей приводит к дублированию имен файлов css

#php #wordpress #woocommerce #storefront

#php #wordpress #woocommerce #витрина магазина

Вопрос:

когда я пытаюсь включить таблицу стилей моих дочерних тем в дочерние темы functions.php он выдает ошибку 404 в консоли из-за дублирования имени. Вот ошибка и сценарий постановки в очередь:

 VM281:165 GET https://tusenochenknopp.se/wp-content/themes/storefront-child-theme/style.cssstyle.css?ver=5.6 net::ERR_ABORTED 404

add_action( 'wp_enqueue_scripts', 'toek_theme_name_scripts' );
function toek_theme_name_scripts() {

    wp_enqueue_style( 'style', get_stylesheet_uri() .'/style.css' );
}
 

Я попытался изменить имя файла и в скрипте, но затем я получаю эту ошибку:

 VM2131:165 GET https://tusenochenknopp.se/wp-content/themes/storefront-child-theme/style.css/child-style.css?ver=5.6 net::ERR_ABORTED 404
 

Я благодарен за любые предложения по решению.

Ответ №1:

Вы используете get_stylesheet_uri() функцию вместо get_stylesheet_directory_uri() функции

Первый получает фактический URI для файла таблицы стилей, последний получает каталог для него. Поэтому вам нужно будет обновить свой код до любого из следующих:

 wp_enqueue_style( 'style', get_stylesheet_uri() );
 

или

 wp_enqueue_style( 'style', get_stylesheet_directory_uri() .'/style.css' );
 

Я бы рекомендовал последнее, потому что оно более семантично при добавлении нескольких таблиц стилей позже, но в конечном итоге любой из них должен работать. Также обратите внимание, что первое использование get_stylesheet_uri() работает только в том случае, если ваша таблица стилей имеет соответствующее имя style.css

Документация и ссылки на функции:

Комментарии:

1. Спасибо @Xhynk, это сработало. Мне было интересно узнать о документации и ссылке на функцию в разделе функция. Вы пишете get_stylesheet_directory() , но когда вы нажимаете на ссылку, она говорит get_stylesheet_uri() . get_stylesheet_directory() Существует ли функция?

2. Ах, извините за это, это была опечатка, я это исправил. Да, get_stylesheet_directory существует, но это возвращает путь к теме вместо URI . При постановке в очередь подобных ресурсов вам захочется использовать _uri функции, но при include редактировании, file_exists() редактировании или проверке filemtime() файлов etc вы должны использовать _directory функции. _uri выведет что-то вроде https://example.com/wp-content/themes/theme/style.css , _directory выведет что-то вроде /home/users/1234/www/wp-content/themes/theme/style.css .