Este post faz parte de um conjunto de artigos organizados em um Curso de WordPress. Acesse o link para outros conteúdos.

Escrevo aqui há algum tempo e é sempre gratificante quando algum leitor interage comigo. Mês passado recebi um e-mail bem legal da leitora Paula Zanini, onde ela sugeria um assunto:

Primeiro obrigada por compartilhar seu conhecimento Felipe. Sou novata no WP e na construção de sites. To lendo muito coisa pra tentar entender. Já percebi que existe um universo bem diverso de ferramentas. Estou começando com um blog. Gostaria de construi-lo de forma que futuramente seja fácil mudar o tema sem criar muita dificuldade. Como fazê-lo? Pelo que entendi seja o site construido com os tais shortcodes ou divs/sections ele vai gerar um código excessivo no futuro. Isso é chato mas ainda é “tolerável”. Chato é perder todas funções ou sumir o conteúdo. Entendi que para evitar isso, o ideal é que a aparência fique no tema e as funções fiquem nos plug-ins. Mas como faço isso? E mais, Como evitar que tenha problemas no update de temas/plugins (estou lendo no seu site sobre os temas filhos que servem para isso certo?) ? Enfim, se queria sugestão pata escrever um post, estou pedindo esclarecimento para novatos nesses pontos delicados de planejamento de um web site. Obrigada.

Eu que agradeço, Paula! Como você comentou, eu já escrevi aqui sobre temas filhos e para não ter problemas com atualizações de temas e plugins é bom dar uma lida sobre os hooks no WordPress. Neste post vou explicar o que precisa estar num plugin e o que vai no tema.

O conceito de plugin territory

Existem três grandes territórios no WordPress: o core, ou arquivos básicos, que é o que o WP faz nativamente; o território dos plugins, que estendem as funcionalidades do core e o território dos temas. Todas as funcionalidades devem ser criadas pelo core ou por um plugin, de forma que a troca de tema seja o menos traumática possível para o usuário. Lembre-se, o WordPress é uma ferramenta para facilitar a vida daqueles que também não entendem de programação e que não saberão levar as coisas do tema antigo para o novo.

A regra de ouro é:

Isso deve deixar de existir se o usuário só trocar de tema? Se a resposta é não, então isso deve estar em um plugin.

Exemplos de coisas que devem estar fora do seu tema

A documentação oficial do WordPress para envio de temas para o repositório traz uma boa lista:

Suporte para rastreamento e análise

A inserção da tag do Google Analytics, por exemplo, não deve estar direto no tema. É até engraçado isso estar aqui, porque eu perdi um dia inteiro de visitas no Analytics quando eu troquei de tema recentemente, exatamente porque a tag estava no tema antigo. Casa de ferreiro, espeto de pau.

Opções de SEO

Cuidado aqui para não se confundir. As tags HTML do tema devem ser otimizadas para busca, usando dados estruturados ou coisa do tipo, tags semânticas e etc., mas as meta tag descriptions, por exemplo, que variam de página para página, devem estar em um plugin como o Yoast SEO.

Formulários de contato

Essa é uma resposta simples para a nossa regra: o formulário de contato deve sumir se o usuário trocar de tema? Não consigo pensar em um caso onde isso seja verdadeiro.

Meta boxes não relacionadas a design

Meta boxes são aquelas caixas exibidas ao redor de onde editamos os textos dos posts, onde podemos habilitar comentários, editar o resumo e inserir uma imagem destacada, por exemplo. Uma meta box onde o usuário escolha entre exibir o nome dos membros da equipe em azul ou vermelho pode estar no tema, a meta box para digitar o nome dos membros não. Isto está relacionado ao item Custom Post Types aí embaixo.

Cache

Deixe isso para plugins especializados como o W3 Total Cache ou o WP Super Cache. Se você estiver fazendo uma query muito complexa, que consuma muitos recursos para ser executada e achar melhor colocar isso em um transient (o armazenamento temporário que o WordPress fornece pra gente), o ideal é se perguntar se essa query continuaria sendo executada se o tema fosse outro. Se sim, o melhor é executar essa query em um plugin separado. Já falei sobre query no WordPress por aqui, vale a leitura.

Widgets para o painel de administração

Precisar criar widgets para aquela tela inicial do Painel WordPress é relativamente incomum. Para enviar para o repositório é expressamente proibido que seu tema faça isso, no dia a dia, aplique a regra.

Custom Post Types e Shortcodes

A resposta que a leitora precisava. Vou dividir a explicação:

  • Custom Post Types ou CPTs: os tipos não são parte do visual do site, eles fazem parte da arquitetura de informação. Coisas como portfolio, membros de equipe, eventos e etc. precisam continuar sendo exibidas mesmo que você ou o seu cliente troquem de tema. O ponto aqui não é como eles são exibidos (isso sim, é mesmo tratado pelo tema), o ponto aqui é eles existirem ou não independente do tema. Seu tema pode precisar ter um single-portfolio.php, mas a criação deste tipo não deve ser feita no tema;
  • Shortcodes: shortcodes são aqueles códigos que a gente insere no conteúdo dos posts para gerar um elemento diferente, como [minha_galeria id="1,2,3"], por exemplo. O WordPress encontra um texto entre colchetes, procura uma função PHP que interprete aquilo e gere um HTML de acordo. Esse conteúdo é gravado no banco de dados junto com o texto do post, por exemplo, e não é alterado automaticamente quando o usuário troca de tema. Então, se você criar o shortcode minha_galeria em um tema, mas não passar isso para o tema novo, esse código deixa de ser interpretado pelo WP e o código estranho será exibido para o usuário final, que não fará nem ideia de que ali deveria aparecer uma galeria.

Botões de redes sociais como “curtir”, “seguir” e “compartilhar”

Mais um exemplo simples de aplicação daquela regra de ouro: instigar o leitor a interagir com o conteúdo é algo específico daquele tema ou queremos que ele faça isso independente do tema aplicado?

Como colocar isso tudo em um plugin

Embora criar um plugin seja relativamente fácil, o assunto rende um outro post. No ano passado o Claudio Sanches fez um workshop no WordCamp SP sobre isso e o material é excelente. Este ano foi a vez do Alysson Souza e o material deve estar disponível em breve. Para ensinar aqui só o básico, crie uma subpasta na pasta wp-content/plugins, como por exemplo meu-plugin, e dentro dela coloque um arquivo meu-plugin.php. Adicione um cabeçalho básico como

/*
 * Plugin Name: Meu plugin
 * /

e adicione o que precisar embaixo disso. Não se esqueça de ativar seu plugin pelo painel e lembre-se, isso é só o básico. Estude também a possibilidade de criar vários plugins ao invés de apenas criar um com várias coisas diferentes.

Como indicar que meu tema precisa de alguns plugins

A documentação oficial indica o TGM Plugin Activation, que é a mesma ferramenta que a gente vê em alguns temas da Envato.  Eles tem um gerador automático, é só preencher e depois editar o que for preciso.

Acha que nunca vai mudar de tema?

Pesquisando sobre o assunto, achei essa provocação interessante. Pode ser que você nunca mude de tema mesmo, mas por que fazer um tema inchado se fazer do jeito certo é bem simples?


Gostou? Tem alguma opinião sobre o assunto? Tem alguma sugestão de post, assim como a Paula? Deixe aqui nos comentários ou entre em contato. É sempre um prazer 🙂