У меня есть настройка дочерней темы -> родительской темы, где мне нужно загрузить таблицу стилей с именем generate.css в дополнение к файлу style.css, добавленному активной дочерней темой. Сгенерированный файл.css находится в родительской теме и динамически генерируется и предоставляется родительской темой.
Я начал с очевидного пути, просто добавив правило импорта в начало файла style.css дочерней темы:
/* Get Parent BASE CSS */
@import url('../parent-theme/style.css');
/* Get Parent GENERATED CSS */
@import url('../parent-theme/generated.css');
Но это не работает по двум причинам.
1) Я хочу иметь возможность добавить в файл номер версии для очистки кеша:
<link rel='stylesheet' href='http://www.com/wp-content/themes/parent-theme/generated.css?ver=2389642855'>
2) Я хочу, чтобы файл грузился последним, после дочерних тем style.css
Можно ли подключить загрузку этой созданной таблицы стилей.css в голову, чтобы она добавлялась после style.css дочерней темы с использованием functions.php родительской темы?
Какой хук или механизм WP я мог бы использовать?
Абсолютно!
В functions.php, как вы сказали. Я назову его cache_busting_styles, потому что мне нравится, как оно звучит.
Сначала вы устанавливаете стиль через wp_enqueue_style, затем вызываете его во время хука действия wp_print_styles. Кроме того, вам нужно настроить переменную и передать ее туда в качестве номера версии:
wp_enqueue_style принимает 5 аргументов, во-первых, дескриптор, идентификатор, который wordpress связывает с таблицей стилей (должен быть уникальным), во-вторых, URL-адрес файла, в-третьих, другие файлы, от которых он зависит (любые необходимые файлы, которые должны быть загружены вместе с этим файлом, я оставил его нулевым, вы можете добавить все, что хотите, он использует другие дескрипторы таблиц стилей в очереди), четвертая версия, которую он добавляет в конец URL-адреса ссылки, точно так же, как то, что вы ищете (вы можете передать все, что хотите, в это, WordPress по умолчанию помещает сюда свою текущую версию) и, наконец, медиа-аргумент для файла CSS (экран, печать, все и т. д.). Надеюсь, это поможет!
Изменить: просто хотел уточнить, что при использовании этого метода этот лист всегда должен добавляться после таблицы стилей по умолчанию, но чтобы быть уверенным, add_action принимает третий аргумент, который является приоритетом действия. Очень большое число гарантирует, что он будет работать последним, но что-то вроде 8 или 12 должно помочь, на тот случай, если вам нужно форсировать порядок.
спасибо это здорово! В чем разница между подключением функции, отвечающей за постановку таблицы стилей в очередь, к действию «wp_print_styles», а не к действию «get_header»?
Разница не так уж и велика, на самом деле. get_header запускается немного раньше, чем wp_print_styles. Мне нравится помещать мой javascript в wp_print_scripts, а таблицы стилей — в wp_print_styles только для целей организации. Я полагаю, что на самом деле было бы целесообразно вместо этого поставить в очередь все скрипты и таблицы стилей во время wp_enqueue_scripts. codex.wordpress.org/Plugin_API/Action_Reference дает порядок действий при запросе домашней страницы, если вы ставите их в очередь до того, как они будут напечатаны, вы в порядке.
вы можете просто поставить в очередь сгенерированный стиль.css. Используйте следующий код в файле function.php ваших дочерних тем.