É certo incluir CSS embutido em plugins?

21

Normalmente, em um plugin, eu adicionaria estilos usando wp_enqueue_style. No entanto, atualmente estou criando um plug-in que precisa apenas de algumas linhas de CSS e estou pensando se seria melhor servir os estilos embutidos para salvar uma solicitação. Obviamente, existem muitas vantagens em usar o wp_enqueue_style, mas elas valem a solicitação extra de um pedaço tão pequeno de CSS? Existe alguma 'melhor prática' aceita nesta área?

Dustin
fonte

Respostas:

14

TL; DR; Enqueue

Usando folha de estilo externa

  • PRO: Todos os seus estilos estão em um único local.
  • PRO: reduz a codificação de páginas da web.
  • PRO: Mais fácil de manter o plugin.
  • PRO: Pode usar ganchos para alterar a localização do arquivo.
  • PRO: Pode usar ganchos para desenfileirar o arquivo.
  • PRO: pode usar estilos minify automaticamente.
  • CON: Pode adicionar solicitação HTTP extra (pode ser superada).

Usando estilos embutidos

  • PRO: pode ver diretamente o estilo aplicado.
  • PRO: Não há solicitações HTTP extras.
  • CON: Não é possível usar ganchos para alterar os estilos.
  • CON: Não é possível usar ganchos para desenfileirar os estilos.
  • CON: Não é possível minimizar os estilos.
  • CON: Precisa ! Importante para substituir o estilo

Normalmente eu diria: Claro, se você é o único a usá-lo, vá em frente e faça-o em linha. Mas você está falando de um plug - in, o que significa que o código será público, portanto, procure a extensibilidade. No momento, você tem apenas algumas linhas de estilo:

  • CON: E se esses poucos se tornarem mais?
  • CON: E se alguém estender seu plugin?
  • CON: E se alguém quiser alterá-lo?
  • CON: E se alguém procurá-lo em arquivos css?
  • CON: E se alguém quiser reduzi-lo automaticamente?

Portanto, enfileire. (De preferência condicionalmente, apenas se o plug-in precisar dele.) O mesmo se aplica ao JavaScript . (Mas isso deve ser incluído no rodapé, se possível.)

Derk-Jan
fonte
Tudo bem usar estilos embutidos no back-end?
shea
@bungeshea Se alguém vai mudar o seu plugin, ele pode querer alterar o back-end também;) Apenas certifique-se de enfileirar o script apenas no back-end. Por exemplo: function _your_enqueue( $hook )pode testar $ hook para ver se você está na sua página de opções. Como alternativa, você pode usar current_screen()para propriedades mais simples . O problema é que você tem permissão para fazer isso, mas o uso geral é um plug-in que consiste em um arquivo .php para código do servidor e pode ou não ter imagens, arquivos .js e .css.
Derk-
1
Você observa que a solicitação http extra pode ser superada - você pode esclarecer isso?
Dustin
2
Você não pode, mas o usuário do plugin pode. Existem vários plugins e funções gravados, imediatamente antes da saída da página, obter TODOS os estilos enfileirados e adicioná-los a um arquivo combinado e minificado. Não importa quantos arquivos CSS você adicionar, o visualizador verá apenas um. Mesmo para javascript. No entanto, este não é o seu "problema". É uma otimização que não é necessária e, imho, a solicitação HTTP extra fica aquém de todos os PROs.
Derk-
1
Sobre a última frase - estilos AFAIK deve ser a saída no cabeçalho não o rodapé
Mark Kaplun
2

Isso é difícil de responder e eu realmente não tenho certeza se existe uma resposta oficial.

Entendo o sentimento de salvar uma solicitação, mas o estilo embutido quase sempre vence. Um tema ou usuário final terá dificuldade em alterar seu CSS.

Com isso em mente, acho que faria isso em um plugin lançado publicamente ...

  1. se o CSS for absolutamente crítico para o funcionamento do plug-in, como é o caso das apresentações de slides, por exemplo.

  2. Ou, se eu também incluísse um filtro no plug-in que permita que o CSS embutido seja alterado ou removido.

s_ha_dum
fonte