Разве можно включить встроенный CSS в плагины?


21

Обычно в плагине я бы добавил стили, используя wp_enqueue_style. Тем не менее, в настоящее время я создаю плагин, которому требуется всего несколько строк CSS, и мне интересно, может быть, лучше использовать встроенные стили для сохранения запроса. Очевидно, что использование wp_enqueue_style имеет много преимуществ, но стоит ли им дополнительный запрос для такого небольшого фрагмента CSS? Есть ли принятая «лучшая практика» в этой области?

Ответы:


14

TL; DR; Enqueue

Использование внешней таблицы стилей

  • PRO: Все ваши стили в одном месте.
  • PRO: уменьшает кодирование веб-страниц.
  • PRO: проще поддерживать плагин.
  • PRO: можно использовать хуки, чтобы изменить местоположение файла.
  • PRO: можно использовать хуки, чтобы удалить файл.
  • PRO: можно использовать минимизировать стили автоматически.
  • CON: Может добавить дополнительный HTTP-запрос (может быть преодолен).

Использование встроенных стилей

  • PRO: можно непосредственно увидеть стиль применения.
  • PRO: никаких дополнительных HTTP-запросов.
  • CON: нельзя использовать крючки для изменения стилей.
  • CON: нельзя использовать крючки для отмены стилей.
  • CON: не может минимизировать стили вообще.
  • CON: нужно ! Важно переопределить стиль

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

  • CON: Что если этих немногих станет больше?
  • CON: Что если кто-то расширит ваш плагин?
  • CON: Что если кто-то захочет изменить это?
  • CON: Что если кто-то ищет его в файлах css?
  • CON: Что, если кто-то хочет минимизировать это автоматически?

Поэтому ставьте в очередь. (Желательно условно, только если плагин нуждается в нем.) То же самое относится и к JavaScript . (Но это должно быть включено в нижний колонтитул, если это возможно.)


Можно ли использовать встроенные стили на сервере?
She

@bungeshea Если кто-то собирается изменить ваш плагин, он может захотеть изменить и бэкэнд слишком правильно;) Просто убедитесь, что вы ставите скрипт в очередь только на бэкэнде. Например: function _your_enqueue( $hook )можете проверить $ hook, чтобы увидеть, есть ли на вашей странице настроек. В качестве альтернативы вы можете использовать current_screen()для более простых свойств. Дело в том, что вам разрешено это делать, но обычно используется плагин, который состоит из файла .php для серверного кода и может иметь или не иметь изображения, файлы .js и .css.
Derk-

1
Вы заметили, что дополнительный http-запрос может быть преодолен - вы можете уточнить это?
Дастин

2
Вы не можете, но пользователь плагина может. Существует несколько плагинов и функций, написанных непосредственно перед выводом страницы, которые получают ВСЕ поставленные в очередь стили и добавляют их в минимизированный объединенный файл. Независимо от того, сколько CSS-файлов вы добавите, зритель увидит только один. То же самое для JavaScript. Тем не менее, это в вашем случае не ваша «проблема». Это оптимизация, которая не нужна, и имхо, дополнительный HTTP-запрос отчасти не отвечает всем PRO.
Дерк-

1
О последнем предложении - стили AFAIK должны выводиться в верхнем колонтитуле, а не в нижнем колонтитуле
Марк Каплун

2

Это трудно ответить, и я действительно не уверен, есть ли официальный ответ.

Я понимаю мнение о сохранении запроса, но встроенный стиль почти всегда побеждает. Теме или конечному пользователю будет трудно изменить ваш CSS.

Имея это в виду, я думаю, я бы сделал это в публично выпущенном плагине ...

  1. если CSS абсолютно необходим для функционирования плагина, как, например, в случае со слайд-шоу.

  2. Или, если я также включил фильтр в плагин, который позволяет изменить или удалить встроенный CSS.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.