Насколько важно поставить в очередь таблицу стилей темы?

19

Я бродил по сети, ища ответ на этот вопрос, но по какой-то причине все, что я могу найти, - это реальные примеры, но без этого конкретного объяснения, которое ясно сказано в случае сценариев. Может кто-нибудь объяснить мне, почему важно / выгодно ставить в очередь стили при разработке темы, а не просто использовать <link rel=stylesheet>в header.php.

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

byronyasgur
источник
это поощряется требованиями обзора темы. codex.wordpress.org/… хотя по желанию вы МОЖЕТЕ просто связать rel = главную таблицу стилей в шапке
helgatheviking
1
Таблица стилей по умолчанию (то есть: style.css в корне каталога вашей темы) загружается автоматически, поэтому ее не нужно ставить в очередь. Если весь ваш CSS для вашей темы содержится в этой таблице стилей (или если вы используете правила «импорта» в этой таблице стилей для загрузки CSS), дальнейшая постановка в очередь не требуется. Однако для большей гибкости в дочерних темах может быть выгодно условно поставить в очередь дополнительный CSS, который может быть опущен любой дочерней темой, как иллюстрирует @kaiser.
Том Оже

Ответы:

17

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

Также важно отметить, что использование таблицы стилей по умолчанию в вашей теме не является обязательным требованием. Таблица стилей должна быть НАСТОЯЩАЯ, но если вы используете ее просто для названия своей темы, установки версии и т. Д., WordPress вполне подходит для этого, как и люди, которые одобряют темы для основного репозитория.

mor7ifer
источник
17

Как дополнение к другому ответу @ m0r7if3r:

Вы можете использовать, current_theme_supports()чтобы загрузить таблицу стилей родительских тем, только если есть поддержка тем.

function add_supported_stylesheets()
{
    if ( current_theme_supports( 'parent-stylesheet' ) )
        wp_enqueue_style( 'main', get_stylesheet_directory_uri().'/style.css', array(), filemtime( get_stylesheet_directory().'/style.css' );
}

// In your parent themes bootstrap in the functions.php file
// Add the theme support:
add_theme_support( 'parent-stylesheet' );
// Then add the stylesheet:
add_action( 'after_setup_theme', 'add_supported_stylesheets', 20 );

Обратите внимание, что эта функция добавляет filemtimeномер версии. чтобы предотвратить кеширование браузера, если содержимое файлов было изменено.

Это позволит вашим пользователям отключить таблицу стилей в начальной загрузке дочерних тем с помощью простого вызова fn:

remove_theme_support( 'parent-stylesheet' );
// ...or...
add_theme_support( 'parent-stylesheet' );
кайзер
источник
3

Еще одна причина для постановки в очередь - это то, что плагины могут работать со стилями. Например, Better WordPress Minify автоматически объединит файлы CSS, а WP-LESS скомпилирует ваши файлы LESS и кеширует их на лету. Они оба делают это, подключаясь к очереди стилей и обрабатывая расположенные там файлы.

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

Стив Тейлор
источник