Descubra como adicionar personalização ao WordPress: um guia prático
Como alguém com muitos anos de experiência como desenvolvedor de back-end do WordPress, tentei várias maneiras de personalizar o WordPress para atender às minhas próprias necessidades e às necessidades específicas de outras pessoas. Uma das formas mais comuns é criar o seu próprio plugin WordPress Custom Features. Mas, como verá neste artigo, esta não é a única opção, nem é sempre a melhor opção.
Embora este guia se destine principalmente aos programadores, os gestores de projectos também podem aprender como estas estratégias respondem às necessidades das suas equipas e quando e como utilizá-las eficazmente.
Eis algumas formas de personalizar o WordPress:
- Adicione o código ao ficheiro functions.php do seu tema.
- Crie um plugin WordPress dedicado a funcionalidades personalizadas.
- Utilize plug-ins para gerir e aplicar snippets personalizados.
- Personalize-o com os plug-ins essenciais.
Agora, vamos explorar cada método em pormenor
Adicione o código a Functions.php
Nos "primeiros" dias do WordPress, quando a maioria dos sites eram escritos em PHP, a forma mais rápida de alterar a funcionalidade de um site era adicionar código ao ficheiro functions.php do tema.
Ainda pode fazê-lo agora e, se estiver disposto a correr o risco, pode editá-lo diretamente no editor de ficheiros do tema no seu painel de controlo do WordPress.
Com o tempo, passei de me sentir mais à vontade a utilizar o ficheiro functions.php do WordPress para personalizar o site para me sentir menos inclinado a utilizá-lo.
O principal problema é que o ficheiro functions.php está anexado ao tema. Isto significa que se não estiver a utilizar um tema que tenha sido personalizado especificamente para si e o tema for atualizado, toda a personalização que fez será perdida.
Uma solução é criar um tema secundário para que possa manter as alterações relacionadas com o tema principal sem afetar o próprio tema.
Agora, tento evitar adicionar muito código personalizado ao ficheiro functions.php, principalmente porque muito do código é mais adequado para plugins, que são frequentemente utilizados para adicionar novas funcionalidades a um site em vez de apenas alterar o estilo do tema.
Há dois outros casos em que eu consideraria escrever código personalizado no ficheiro functions.php:
- Este código é especificamente para os meus próprios temas ou subtemas personalizados.
- Precisava de testar algumas alterações rapidamente, uma vez que o acesso ao ficheiro functions.php é normalmente muito fácil.
Tenha em mente, no entanto, que não deve fazer demasiadas alterações no ficheiro functions.php ou o ficheiro tornar-se-á muito complicado. Especialmente se houver vários ficheiros PHP e outros tipos de ficheiros que precisem de ser utilizados, eu optaria por criar um plugin especial de Funções Personalizadas do WordPress para gerir estas alterações.
Escrever plug-ins de funções personalizadas
Como referi anteriormente, a maior parte do código que adiciono ao site é utilizado para criar ou melhorar funcionalidades que não estão relacionadas com o tema.
Sempre que decido adicionar mais conteúdo personalizado a um sítio Web, começo a criar um plugin de caraterísticas personalizadas. Normalmente, dou o nome do sítio ao plugin, por exemplo, para o WP Mayor, crio um plugin chamado "WP Mayor Custom Features".
O nome é muito importante! Em primeiro lugar, permite que os outros administradores do sítio saibam à primeira vista que o plugin foi concebido para este sítio e que é utilizado principalmente para efetuar alterações específicas a esse sítio.
Em segundo lugar, manter a nomenclatura das pastas e ficheiros do plugin única evitará que o seu plugin seja acidentalmente substituído por outros plugins com o mesmo nome no repositório de plugins do WordPress.org.
Criar um plugin WordPress Custom Features é, na verdade, bastante simples. Só precisa de começar no diretório wp-content/plugins. No entanto, deve criar primeiro uma nova pasta, pois normalmente precisará de mais do que um ficheiro para organizar o seu código e poderá ter de adicionar também ficheiros JavaScript e CSS.
Tomando o nosso exemplo, temos agora uma nova pasta de plugins wp-content/plugins/wp-mayor-custom-functions e um ficheiro principal de plugins wp-mayor-custom-functions.php.
Agora precisamos de adicionar um cabeçalho ao ficheiro para que o WordPress o reconheça como um plugin. Embora o simples preenchimento do "Nome do plugin" o faça funcionar basicamente, vamos ver um exemplo mais detalhado:
/**
* Nome do plugin: WP Mayor Função personalizada
* URI do plugin: https://wpmayor.com
* Descrição: Todas as funções fixes que criámos para nós.
* Versão: 1.0.0
* Requer pelo menos: 6.2
* Requer PHP: 8.1
* Autor: Thomas Maier
*/
Depois de o fazer, o nosso plugin deve aparecer na página "Plugins" do painel de controlo do WordPress.
Agora podemos começar a adicionar código PHP real ao ficheiro.
Dica: Se não conseguir aceder ao site através de FTP, ou se apenas quiser poupar-me trabalho, utilizo um plugin chamado Pluginception para começar rapidamente. Depois, posso adicionar mais código no editor de plug-ins no painel de controlo do WordPress.
Deve estar a perguntar-se se todo o código específico do sítio deve estar num plugin de caraterísticas personalizadas.
Depende realmente da situação. Se souber que determinados códigos personalizados serão utilizados em vários projectos, coloco-os em plug-ins diferentes. No entanto, o código que é especificamente concebido para um determinado sítio, coloco-o no mesmo plugin. Desta forma, posso reduzir o número de plugins que tenho de manter.
Parece bastante simples, certo? Bem, tendo gerido uma das maiores empresas de plug-ins e feito centenas de ajustes em vários sites ao longo dos últimos anos, descobri que estes plug-ins personalizados ainda são normalmente mais adequados para programadores. Por isso, vamos explorar outra abordagem na próxima secção.
Utilize o plug-in de fragmentos de código para gerir
Tenho o hábito de consolidar todo o meu código genérico num plugin de caraterísticas personalizadas. Desta forma, quaisquer alterações ao plugin, como redirecionar uma página de carrinho em branco para uma página de preços, adicionar informações promocionais ou promoções da Black Friday, são claramente documentadas e armazenadas nos seus próprios ficheiros de fácil compreensão com os seus próprios nomes.
Esta abordagem está "bem documentada" e é "fácil de ler" para aqueles que têm acesso direto ao código.
Mas descobri que, embora esteja sempre a fazer alterações ou a responder a perguntas sobre elas, não é a forma mais eficiente ou sustentável de gerir um grande número de funcionalidades personalizadas.
À medida que cada vez mais pessoas começam a gerir lojas e sítios Web, quero que possam compreender facilmente as alterações em vez de dependerem de uma página da base de conhecimentos dedicada às actualizações.
A solução é utilizar um plugin de funcionalidades personalizadas para gerir os trechos de código no painel de controlo do WordPress.
A minha preferência pessoal é utilizar o plugin gratuito Code Snippets, mas é claro que existem outras opções.
Depois de instalar este plugin, haverá um item de menu adicional no painel de controlo dedicado à listagem de todos os trechos de código.
As alterações são agora visíveis para qualquer pessoa com privilégios administrativos. Dei a cada trecho de código um nome descritivo, detalhei-o com uma área de comentários e marquei as diferentes alterações.
Normalmente, utilizo o nome do plugin ou do tema em questão e a parte do sítio a que se refere como etiquetas, como "WooCommerce" e "página de checkout".
Se escolher nomes fáceis de compreender e uma estrutura bem organizada, qualquer pessoa deve ser capaz de encontrar e compreender os ajustes. Até utilizo este método no meu sítio Web pessoal, porque torna tudo muito mais fácil.
A utilização do plug-in Funções personalizadas é especialmente útil para trechos de código que só precisa temporariamente, como alguns scripts de limpeza que são executados ocasionalmente ou algumas acções que afectam o front-end (como o lançamento de uma campanha promocional).
É seguro?
Normalmente, o WordPress permite que qualquer utilizador com privilégios de "admin" edite ficheiros de plugins e temas no backend. O mesmo se aplica aos plugins com código personalizado. Assim, a antiga medida de segurança de conceder apenas as permissões necessárias a cada utilizador continua a ser importante.
Para os programadores, a utilização de plug-ins para gerir o código significa que alguns ganchos iniciais podem não estar disponíveis quando a página é carregada porque o plug-in tem de ser carregado primeiro. Se precisar de carregar o seu código personalizado antes de todos os outros plug-ins, poderá querer ver a opção denominada MU Plugins.
Personalizar a funcionalidade do WordPress com plug-ins essenciais
Os chamados plugins "must-have" são um tipo especial de plugins.
São executados antes de todos os outros plugins normais, por isso utilizo-os muitas vezes para controlar se determinados plugins são activados ou desactivados numa determinada página, por exemplo para acelerar determinadas funcionalidades ou melhorar a eficiência das chamadas ao admin-ajax.php.
Uma caraterística importante dos plug-ins "obrigatórios" é que são activados automaticamente e não podem ser desactivados ou modificados através do painel de controlo do WordPress. Isto torna-os numa opção ideal para armazenar o código principal que nem mesmo os administradores podem alterar.
Criar os plug-ins necessários
O plugin "Required" é colocado no ficheiro wp-content/mu-plugins
pasta. As novas instalações do WordPress não têm esta pasta por defeito, mas, por vezes, alguns plug-ins ou serviços de alojamento adicionam automaticamente conteúdos aqui.
ir mu-plugins
Para adicionar um novo plugin à sua pasta, tem de criar um ficheiro PHP no seu computador com as informações de cabeçalho do plugin personalizado, como mostrei anteriormente. Desta vez, não precisa de se preocupar com a unicidade dos nomes, uma vez que os plugins "obrigatórios" não são actualizados automaticamente.
Quando estiver satisfeito com o seu novo plugin de caraterísticas personalizadas, pode carregá-lo manualmente através de FTP para a pasta wp-content/mu-plugins
Pasta. Se esta pasta ainda não existir, crie uma nova.
Embora não possa alterar os plug-ins "necessários" através do painel de administração do WordPress, pode vê-los na secção "Plug-ins > Plug-ins necessários".
Costumava gostar de personalizar o meu sítio WordPress de uma forma especial, mas agora já não gosto tanto. O problema é que todas as alterações estão num ficheiro chamado functions.php que pertence ao tema do site. Se o tema não for criado por mim e for atualizado, todos os ajustes que fiz desaparecem.
A solução foi criar um "tema filho" para que pudesse manter todas as alterações associadas ao tema original.
Já não adiciono muito código personalizado ao ficheiro functions.php, porque descobri que, na maior parte dos casos, estas alterações devem ser feitas através de plugins, que adicionam novas funcionalidades ao site, em vez de alterar apenas o aspeto.
Há dois casos em que também escrevo código personalizado no ficheiro functions.php:
- Quando o código é especificamente para o meu tema personalizado ou tema filho.
- Quando queria testar rapidamente algumas alterações porque era fácil aceder e modificar o ficheiro functions.php.
Mas lembre-se, não deve acumular muitas alterações neste ficheiro. Se o ficheiro for demasiado complexo, será difícil de gerir. Especialmente se houver muitos ficheiros PHP e outros tipos de ficheiros que precisem de ser utilizados, eu optaria por criar um plugin WordPress especial para gerir estas personalizações.
Escrever plug-ins de funções personalizadas
Normalmente, adiciono muito código ao meu sítio WordPress que é utilizado para adicionar alguma funcionalidade especial em vez de alterar apenas o aspeto do sítio.
Quando preciso de adicionar alguma funcionalidade personalizada específica ao meu sítio Web, crio algo chamado plugin de funcionalidade personalizada. Por exemplo, se o meu sítio se chama "WP Mayor", então crio um plugin chamado "WP Mayor Custom Features".
É importante dar um bom nome ao plugin, porque assim as outras pessoas que gerem o sítio saberão à primeira vista que o plugin está diretamente relacionado com este sítio e que o plugin só pode conter alterações a este sítio.
Além disso, certifique-se de que o nome do plug-in é único para que não seja confundido com outros plug-ins no repositório oficial de plug-ins do WordPress e evite que o seu plug-in seja substituído por engano.
Criar um plugin deste tipo é fácil, basta criar uma nova pasta no diretório wp-content/plugins, uma vez que provavelmente terá de adicionar muitos ficheiros, incluindo alguns ficheiros de código como JavaScript e CSS.
Usando o 'WP Mayor' como exemplo, criaríamos uma pasta chamada 'wp-mayor-custom-functions' no diretório wp-content/plugins e, dentro dela Crie um ficheiro de plugin principal chamado 'wp-mayor-custom-functions.php'.
Precisamos de escrever algum código neste ficheiro principal para dizer ao WordPress que isto é um plugin. Embora seja possível fazer com que o plugin funcione apenas preenchendo o nome do plugin, vou mostrar-lhe um exemplo de cabeçalho que contém mais informações.
/**
* Nome do plugin: WP Mayor Função personalizada
* URI do plugin: https://wpmayor.com
* Descrição: Todas as funções fixes que criámos para nós.
* Versão: 1.0.0
* Requer pelo menos: 6.2
* Requer PHP: 8.1
* Autor: Thomas Maier
*/
Depois de concluir os passos acima, o plugin que criou deve aparecer na secção "Plugins" do seu painel de controlo do WordPress. Assim, pode vê-lo e geri-lo aí.
Agora podemos começar a adicionar código PHP real aos nossos ficheiros.
Uma pequena dica: Se não conseguir aceder ao site com FTP, ou se estiver com preguiça, utilizo um plugin chamado Pluginception para começar rapidamente. Depois, posso adicionar mais código diretamente no editor de plugins no painel de controlo do WordPress.
Pode perguntar: devo colocar todo o meu código personalizado num plugin? Isso depende muito. Se souber que algum do código vai ser utilizado em muitos projectos diferentes, coloco-o em plugins diferentes. No entanto, o código que é dedicado a um site específico, coloco-o no mesmo plugin. Dessa forma, não tenho de gerir muitas bases de código diferentes.
Parece-me bem, certo? No entanto, com base na minha experiência na gestão de uma grande empresa de plug-ins e na realização de muitos ajustes em sítios Web, descobri que estes plug-ins personalizados ainda são normalmente demasiado centrados no programador. Vamos explorar uma abordagem diferente na próxima secção.
Utilize o plug-in de fragmentos de código para gerir
Guardo todo o código genérico num plugin dedicado para que possa manter-me organizado. Também me certifico de que todas as alterações e ajustes, tais como promoções especiais ou actualizações importantes, são claramente documentadas e organizadas em ficheiros fáceis de compreender.
Embora o código fosse fácil de compreender, apercebi-me de que talvez não fosse a forma mais eficiente de o fazer, especialmente porque cada vez mais pessoas precisam de gerir sítios Web.
Para facilitar a compreensão e a gestão destas personalizações por todos, decidi utilizar um plugin WordPress que permite gerir todos os trechos de código diretamente a partir do painel de controlo do WordPress.
Gosto especialmente de utilizar um plugin gratuito chamado "Code Snippets". Acrescenta uma nova secção ao painel de controlo onde estão listados todos os fragmentos de código. Agora, qualquer pessoa com direitos de administrador pode ver e editar facilmente o código. Também dei a cada fragmento de código um nome descritivo e utilizei comentários para detalhar o que fazem, bem como etiquetas para diferentes alterações, para facilitar a organização.
As minhas etiquetas são normalmente o nome do plugin ou tema que estou a ajustar e a secção da página a que se refere, como "WooCommerce" e "Checkout".
Se der nomes fáceis de compreender ao código e aos ficheiros e os organizar bem, qualquer pessoa, incluindo eu próprio, pode encontrar e compreender facilmente as alterações. Até utilizo esta abordagem no meu sítio Web pessoal, porque me facilita a vida.
A utilização de um plug-in de função personalizada é perfeita para trechos de código que só precisa de utilizar temporariamente, como algumas limpezas que tem de executar ocasionalmente, ou alguma funcionalidade de front-end que só precisa num momento específico, como abrir uma promoção.
E este método é seguro?
Normalmente, o WordPress permite que qualquer pessoa com privilégios de administrador edite o código do plug-in e do tema de um site. O mesmo se aplica à utilização de plug-ins de código personalizado. Portanto, a velha regra: atribua a cada pessoa apenas as permissões necessárias para que possa manter o seu site seguro.
Um ponto importante para os programadores é que quando gere o código através de plugins, algum código pode precisar de ser carregado antes de todos os outros plugins. Se o seu código assim o exigir, deve considerar a utilização de um tipo de plug-in especial chamado MU Plugins, para que o seu código possa ser carregado antes de outros plug-ins.
Personalizar a funcionalidade do WordPress com plug-ins essenciais
Os plug-ins essenciais são plug-ins especiais que são executados antes de todos os outros plug-ins normais no WordPress. Utilizo-os para controlar se determinados plugins estão ligados ou desligados numa determinada página. Este tipo de código também pode ajudar a acelerar funções específicas, como a falsificação de chamadas API ou a otimização da capacidade de resposta no backend.
Uma caraterística importante é que estes plugins essenciais são activados automaticamente e não podem ser desactivados ou modificados no painel de controlo do WordPress. Isto torna-os perfeitos para alojar o código principal que nem sequer deve ser alterado pelos administradores.
Criar os plug-ins necessários
Os "Essential Plugins" são armazenados no diretório wp-content/mu-plugins na pasta WordPress. Normalmente, as novas instalações do WordPress não têm esta pasta, mas, por vezes, os plugins ou os serviços de alojamento web podem adicionar-lhe algo automaticamente.
Se quiser adicionar novos plugins a esta pasta mu-plugins, tem de criar primeiro um ficheiro PHP no seu computador, como o plugin personalizado que mostrei anteriormente. No entanto, não é necessário dar um nome único a este ficheiro, uma vez que estes plugins essenciais não serão actualizados automaticamente como os outros plugins.
Quando estiver satisfeito com o seu novo plugin, terá de o carregar manualmente via FTP para a pasta wp-content/mu-plugins. Se esta pasta ainda não existir, terá de criar uma nova.
Embora não possa modificar estes plugins essenciais através da interface de administração do WordPress, pode encontrá-los na secção "Obrigatórios" no menu "Plugins".
Idealmente, os plugins essenciais devem estar num único ficheiro. Embora possa fazer referência a outros ficheiros dentro de um ficheiro PHP principal, o WordPress não consegue encontrar esses ficheiros armazenados em subpastas. Se o seu plugin essencial se tornar complicado, deve considerar colocar o código principal num plugin comum e depois utilizar apenas o plugin essencial para carregar e executar todo o código que tem de ser executado antes de todos os outros plugins.
resumos
Analisámos várias formas de adicionar código personalizado ao WordPress: desde adicionar código ao ficheiro functions.php do seu tema, à criação de plug-ins autónomos e plug-ins de funções personalizadas, até à utilização de plug-ins essenciais (mu-plugins). Cada método tem as suas próprias vantagens e possíveis inconvenientes para diferentes situações. Depende do tipo de alterações que pretende fazer e de quem precisa de as utilizar.
Sem comentários