Почему CSS дочерней темы загружается дважды?
Я создал дочернюю тему согласно документации WordPress и добавил необходимую функцию
<?php
add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_styles', PHP_INT_MAX);
function enqueue_child_theme_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
wp_enqueue_style( 'child-style', get_stylesheet_uri(), array('parent-style') );
}
Почему-то я получаю 2 ссылки на таблицу стилей моей дочерней темы:
<link rel='stylesheet' id='twentythirteen-style-css' href='http://DOMAIN.COM/wp-content/themes/twentythirteen-child/style.css?ver=2013-07-18' type='text/css' media='all' />
<link rel='stylesheet' id='child-style-css' href='http://DOMAIN.COM/wp-content/themes/twentythirteen-child/style.css?ver=4.0' type='text/css' media='all' />
Почему так происходит?

Эта статья связана с этой статьей, которую я обновил с изменениями из текущей статьи
Спасибо за поднятие этого вопроса. Я быстро проверил сценарий, и дочерний стиль действительно загружается дважды.
Когда я обновлял кодекс некоторое время назад, я убедился, что дочерний стиль будет загружаться после родительского стиля, не учитывая, что это происходит по умолчанию, а приведенный код фактически загружает таблицу стилей дочерней темы дважды.
Это легко исправить, просто убрав $priority
из функции и удалив часть enqueue для дочерней темы. Я перепроверил всё, и это работает. Было бы хорошо, если бы несколько человек подтвердили это.
А тем временем я обновлю кодекс и добавлю ссылку на эту статью.
Вот рабочий код:
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' );
}
РЕДАКТИРОВАНИЕ
Для тех, у кого этот пост не работает, пожалуйста, ознакомьтесь с этой статьей. Вам нужно будет проверить, как родительская тема добавляет стили. Код в этом вопросе строго предполагает, что стили в родительской теме загружаются правильным образом. Если это не так, посмотрите альтернативы в связанном ответе и попробуйте их.

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

По теме: я столкнулся с парой проблем при использовании этого метода, подробнее здесь.

Таблица стилей не будет загружаться дважды, если использовать тот же 'id'. Но это создаёт другую проблему - я хочу зарегистрировать дочернюю таблицу стилей, чтобы она загружалась после остального CSS и можно было переопределить стили... Но это только дублирует стили (или игнорирует, если использовать тот же 'id').

Основная проблема этого метода, насколько я могу судить, заключается в том, что дочерняя тема не подтягивает номер версии дочерней темы. Кажется, она использует номер версии родительской темы, что не всегда идеально.

@pieter-goosen Я следовал примеру в разделе Дочерние темы, где используется номер версии дочерней темы: wp_get_theme()->get('Version')
. Однако в итоге у меня дублируется CSS для версии WordPress и версии дочерней темы:
<link rel="stylesheet" id="bushwick-style-css" href="/wp-content/themes/bushwick-child/style.css?ver=4.9.8"...>
и
<link rel="stylesheet" id="bushwick-child-css" href="/wp-content/themes/bushwick-child/style.css?ver=1.3.6"...>
.
Какое решение можно предложить в таких случаях?
