X

Shortcodes Nunca Devem Ser Incluídos em Temas. Ponto Final.

O ThemeForest recentemente atualizou seus requisitos de submissão de temas WordPress para serem mais rigorosos e mais alinhados com as melhores práticas de desenvolvimento de temas WordPress.

As diretrizes exigem o uso de vários recursos principais do WordPress, ganchos de tema padrão e proíbem funções PHP (como base64 e fopen) que realmente nunca deveriam ter tido lugar em um tema WordPress para começar.

Basicamente, quase a política de Revisão de Temas do WordPress.org, com algumas poucas coisas.

No geral, é um passo na direção certa e se move para promover as melhores práticas em um dos mercados de temas WordPress mais populares na internet. Há apenas um problema...

Shortcodes Admissíveis

Uma coisa que particularmente chamou minha atenção, no entanto, foi como certas funcionalidades de shortcode "admissíveis" foram permitidas (ou seja, incluindo-as diretamente através do arquivo functions.php do tema). Os listados como "admissíveis" incluíam os seguintes:

  • botões
  • tabelas de preços
  • contêineres de imagem
  • letras capitulares
  • listas

Shortcodes inadmissíveis incluem: mapas, acordions e toggles, conteúdos em caixas, colunas, formulários de contato, gráficos.

O Problema com Shortcodes em Temas

Não consigo expressar melhor do que Justin Tadlock já fez. Um dos problemas mais notáveis é que, quando um usuário muda de tema, os shortcodes não serão mais analisados.

Vamos dizer que o tema “Super Incrível” tinha um recurso de shortcode que geraria um grande botão verde com um link quando você digitasse algo como [button url="http://example.com"]Grande Botão Verde[/button].

Grande Botão Verde

Quando você muda para outro tema (vamos ser sinceros, as pessoas se cansam de temas facilmente), não há mais o grande botão verde. Em vez disso, você vê o shortcode não interpretado na postagem como se fosse qualquer outro conteúdo, assim:

[button url="http://example.com"]Grande Botão Verde[/button]

Fica feio, confuso e fora de lugar, e é uma dor de cabeça para o usuário ter que voltar e remover/substituir todos eles.

O Outro Problema com Shortcodes em Temas

Algo que Tadlock abordou em seu artigo “Lidando com a loucura dos shortcodes” é que muitos shortcodes são tão simples e semelhantes ao HTML que talvez seja melhor instruir os usuários a escreverem um pouco de (*gasp*) código HTML real.

O mesmo shortcode [button url="http://example.com"]Texto do Botão[/button] no meu exemplo acima poderia ser facilmente reescrito como algo como:

<a href="http://example.com" class="button">Texto do botão aqui</a>

Embora possa não haver código CSS estilizando o seletor .button em um novo tema, pelo menos um link normal aparecerá. O que é uma grande melhoria em comparação com um shortcode [button] não interpretado aparecendo no conteúdo de uma postagem.

Além disso, acredito que todo usuário do WordPress deveria ter pelo menos algum entendimento básico de código HTML. Ensinando-os, mesmo em pequenas doses (como construir um link), ajudará. Se eles conseguirem entender um shortcode, não levará muito mais para que entendam HTML básico.

Mas os Usuários Não Se Importam!

Um argumento comum que vejo defendendo todos os tipos de más práticas quando se trata de desenvolvimento de temas é que os usuários simplesmente não se importam. Quero dizer, talvez eles nunca queiram atualizar seu tema, caso em que essa questão dos shortcodes seria um ponto irrelevante.

O problema é que alguns usuários inevitavelmente vão querer trocar de tema um dia. Alguns usuários vão querer instalar um plugin que pode entrar em conflito com algum outro código mal planejado em um tema.

Então, provavelmente eles se importarão e provavelmente se perguntarão se o tema que compraram com centenas de shortcodes integrados e outros recursos supérfluos realmente valeu a pena.

A Maneira Certa de Incluir Shortcodes

Coloque em um plugin. Um plugin realmente simples. Não precisa de um painel de opções separado. Apenas copie e cole literalmente o que você ia incluir através do arquivo functions.php do seu tema, e coloque em um plugin em vez disso.

Poderia até ser empacotado com algo como TGM Plugin Activation para torná-lo obrigatório na ativação do tema. Ou não. Um tema ainda é um tema sem shortcodes.

Dessa forma, se o usuário trocar de tema, os shortcodes ainda funcionarão, pois essa funcionalidade é tratada pelo plugin que ainda está ativo.

Talvez o plugin também possa enfileirar estilos para os shortcodes também. Dessa forma, os botões verdes grandes que você incluiu com o shortcode [button] ainda serão botões verdes grandes, independentemente do tema usado.

Por que o ThemeForest Permitiu Shortcodes “Admissíveis”?

É difícil dizer qual foi exatamente o raciocínio por trás dessa decisão. Japh Thomson, um evangelista do WordPress na Envato (empresa controladora do ThemeForest) disse o seguinte sobre isso em um comentário no WPMU.org:

Funcionalidades complexas de shortcode realmente deveriam residir em um plugin, não em um tema. Também faz sentido quando você considera que a maioria dos nossos autores tem múltiplos temas.

Obviamente, ele entende. Então é um mistério para mim por que haveria quaisquer shortcodes “admissíveis”. E sim, eu percebo que ele usou a palavra “complexo” na citação acima, e os shortcodes admissíveis tendem a ser bem simples (letras capitulares, listas, etc.).

Por mais simples que um shortcode possa ser, os problemas que descrevi acima ainda existirão. O ThemeForest tem se mostrado receptivo ao feedback da comunidade, então é possível que essa regra seja alterada no futuro.

Conclusão

Percebo que esta postagem parece um pouco minuciosa, e essas novas diretrizes são definitivamente um grande passo na direção certa. Mas realmente não há motivo para que qualquer shortcode seja permitido em um tema, simples ou não.

Alerta de spoiler: Não recebi nenhuma resposta para esse tweet com um exemplo real de um shortcode que precisasse absolutamente ser incluído em um tema lançado publicamente.

Isso porque não é nada amigável para o usuário ter que voltar e substituir centenas de shortcodes de botões depois de mudar para um tema que não tem exatamente o mesmo suporte de shortcode.

Comentários   Deixe uma Resposta

  1. Muito obrigado por esta postagem, acabei de comprar um tema do ThemeForest e estou tendo o mesmo problema! Quando carregamos o tema, as páginas dizem que o shortcode não é compatível... o que fazer agora para torná-lo compatível? Obrigado!

  2. Embora eu concorde que os shortcodes devam residir em um plugin em vez de um tema, o código não analisado ainda aparecerá quando o plugin for desativado ou substituído por outro plugin de shortcode. De qualquer forma, pode ser um incômodo para a pessoa que realiza a troca.

    Aprender HTML básico parece o melhor.

  3. Ihor Vorotnov July 28, 2013 at 2:17 pm

    Concordo totalmente com isso. Temas devem lidar com layout e estilos. Qualquer coisa que adicione recursos extras deve ir em um plugin.

  4. Mathew Porter July 27, 2013 at 6:35 am

    Tenho a mesma opinião sobre shortcodes, mas consigo ver o raciocínio para alguns temas incluí-los para que usuários não técnicos adicionem recursos facilmente e, por sua vez, ajudem a vender mais temas de desenvolvedores.

  5. Com certeza.

    Também seria bom se houvesse algum tipo de degradação elegante para shortcodes que não estão mais ativos.

  6. Jens Kilgenstein July 22, 2013 at 8:32 am

    Assim, problemas possíveis podem ser evitados com funções que podem ser adicionadas no futuro em temas diferentes. Questões de manutenção são argumentos de compra importantes – pelo menos para mim!

  7. Concordo totalmente com você. Muito poucas pessoas ficam com um tema para sempre, a menos que seja completamente personalizado (e então você não tem o problema do themeforest) e os shortcodes são um incômodo para lidar. Recentemente descobri esse problema quando comecei a mudar de um tema da theme-junkie para um tema studiopress/genesis. Agora, adiei a mudança, apesar de já ter gasto US$ 80 com isso, porque há muito o que mudar, mesmo no meu novo site.

  8. Olá Leland, ótimo post, obrigado por suas opiniões!

    Lançaremos uma atualização para esses requisitos em breve, com base no feedback de nossos autores, e espero que você fique satisfeito com alguns dos ajustes que fizemos (especificamente em relação aos shortcodes) 🙂

  9. Andrés Vilarreal July 14, 2013 at 10:39 am

    Eu acho que não é apenas um problema de compatibilidade com outros temas, mas também um problema relacionado ao conteúdo. Um shortcode deve ser apenas um auxiliar para processar o conteúdo, e os temas devem apenas exibir o conteúdo pré-processado, não processar o conteúdo por si mesmos. Quando os temas processam shortcodes por conta própria, eles estão tratando aquele pedaço de texto (ou pelo menos parece que o desenvolvedor faz isso) como uma chamada para um elemento visual, não para um funcional (o que realmente é), como se o escopo do que um tema serve estivesse faltando ali. Essa prática mostra uma falta de clareza sobre o que são conteúdo, funcionalidade e visualização, e como esses elementos devem ser gerenciados (ou seja, o conteúdo deve ser armazenado no banco de dados, a funcionalidade deve ser gerenciada via core do WP e plugins, e a visualização via temas; apenas como um exemplo muito básico). Não é preciso ser um especialista em conteúdo, um programador experiente ou um grande designer para saber tais coisas, apenas um pouco de atenção e um pensamento cuidadoso sobre o que estamos oferecendo aos nossos usuários, e quão fácil ou difícil será para eles usar nossos produtos. Acho que tudo bem se você não souber as diferenças, mas estiver aberto a aprender e melhorar, mas, por outro lado, saber e ter em mente todas essas coisas e oferecer shortcodes (e qualquer outra coisa relacionada à funcionalidade) em temas de qualquer maneira, isso me parece uma prática desleal que torna seus usuários cativos do seu produto. Eu sei que às vezes a linha entre visualização e funcionalidade é muito tênue, mas na maioria dos casos a diferença é indiscutível.

    Desculpe pela longa resposta, este é um tópico que me interessa muito. Ótimo post 🙂

    1. Olá Andrés, não precisa se desculpar pela resposta longa, você levanta alguns ótimos pontos!

  10. Obrigado por isso… Tenho problemas contínuos com shortcodes em temas que comprei. E quando eu mudo o tema, tenho código legado em todos os lugares que precisa ser substituído.

    1. Peter, esse é um exemplo perfeito do problema com shortcodes em temas.

      Fica ainda pior quando outras funcionalidades não apresentacionais também são incluídas em um tema, talvez algo para discutir em um post futuro.

Adicionar um comentário

Ficamos felizes que você escolheu deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Checklist de Lançamento WordPress

O Checklist Definitivo para Lançamento de WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento do seu próximo site WordPress em um e-book prático.
Sim, envie-me o eBook Gratuito!