Um guia para usar plug-ins de funções personalizadas no WordPress

Publicados: 2024-03-07

Ao longo de uma década como desenvolvedor de back-end do WordPress, usei vários métodos para ajustar o WordPress às ​​minhas necessidades e às de outras pessoas. O mais comum é escrever plug-ins de funções personalizadas para WordPress. Como você verá a seguir, esta não é a única opção e nem sempre a correta.

Embora eu dedique esta postagem aos desenvolvedores, os gerentes de projeto também aprenderão como esses métodos atendem às necessidades de sua equipe e quando e como usá-los.

Estes são os métodos que estou usando para personalizar o WordPress:

  • Adicione seu código ao functions.php do tema
  • Escreva um plugin de função personalizada para WordPress
  • Use um plug-in para gerenciar trechos de código personalizados
  • Bônus: plug-ins obrigatórios

Vamos dar uma olhada mais profunda em cada um desses métodos.

Adicione código ao functions.php

Nos “velhos” tempos, quando o WordPress usava PHP principalmente no frontend e backend, a maneira mais rápida de fazer algumas alterações no seu site era adicionando o código ao arquivo functions.php do tema.

Você ainda pode fazer isso e, se tiver coragem, use o Theme File Editor no painel do WordPress para isso.

Código personalizado adicionado ao arquivo functions.php por meio do Theme File Editor no painel do WordPress.
Código personalizado no arquivo functions.php do tema por meio do Theme File Editor.

Com o tempo, essa forma passou da minha forma preferida de personalizar o WordPress para a menos favorita.

O principal motivo é que o functions.php está anexado a um tema. Se esse não for um tema personalizado e alguém o atualizar, meus ajustes desaparecerão.

A solução é criar um tema filho que contenha as alterações relacionadas ao tema pai.

Meu principal motivo para não adicionar mais tanto código customizado ao arquivo functions.php é que, na realidade, a maior parte desse código era território de plugins, agregando funcionalidade ao site em geral e não apenas ao tema.

Ainda existem duas situações em que escrevo código personalizado no functions.php :

  1. O código está relacionado ao tema personalizado ou filho.
  2. Testando alterações rápidas antes de movê-las para outro local, já que o functions.php costuma ser de fácil acesso para isso.

Além disso, lembre-se de que o functions.php não é o local para hospedar muitas alterações, pois um único arquivo pode se tornar excessivamente complexo. Especialmente quando preciso de vários arquivos PHP e outros tipos de arquivo em minhas alterações, opto por escrever um plugin de função personalizada para WordPress.

Escrevendo plug-ins de funções personalizadas

Conforme mencionado anteriormente, a maior parte do código que adiciono ao meu site está, na verdade, construindo ou estendendo funcionalidades que são independentes do tema.

Quando sei que adicionarei mais personalizações a um site, inicio um plugin de função personalizada. Geralmente carrega o nome do site, como eu chamaria de WP Mayor, o plugin “WP Mayor Custom Functions”.

Nomear é crucial! Primeiro, permite que outros administradores vejam que este plugin está relacionado ao site e provavelmente hospeda apenas alterações para ele.

Em segundo lugar, manter a pasta do plugin e o nome do arquivo exclusivos evitará que seu site WordPress o substitua acidentalmente por um plugin que tenha o mesmo slug no repositório de plugins wordpress.org.

Criar um plugin de função personalizada para WordPress é fácil. Tudo que você precisa é de um arquivo PHP dentro de wp-content/plugins . No entanto, você deve criar uma nova pasta primeiro, pois geralmente precisa de mais de um arquivo para estruturar seu código e pode querer adicionar arquivos para código JavaScript e CSS.

Seguindo nosso exemplo, digamos que agora temos a pasta do plugin wp-content/plugins/wp-mayor-custom-functions/wp-mayor-custom-functions.php e o arquivo principal.

Vamos adicionar um cabeçalho ao arquivo para informar ao WordPress do que se trata nosso plugin. Embora o “Nome do plugin” seja suficiente para que funcione tecnicamente, vamos dar uma olhada em um exemplo mais avançado:

 /** * Plugin Name: WP Mayor Custom Function * Plugin URI: https://wpmayor.com * Description: All the cool features we custom-built for us. * Version: 1.0.0 * Requires at least: 6.2 * Requires PHP: 8.1 * Author: Thomas Maier */

Isso já deve aparecer em “Plugins” em nosso painel do WordPress.

Um plugin de função personalizada do WordPress habilitado no menu Plugins.
Nosso plugin de função personalizada na seção Plugins.

Agora, podemos enlouquecer e adicionar código PHP real ao nosso arquivo.

Dica: quando não tenho acesso FTP a um site ou sou apenas preguiçoso, uso o plugin Pluginception para criar rapidamente algo que posso preencher posteriormente com código por meio do Plugin File Editor no painel do WordPress.

Você deveria agora colocar todo o código de um site específico em um único plugin de função personalizada dedicado?

Depende. Quando sei que o código personalizado é usado em vários projetos, separo-o em um plugin diferente. Ao mesmo tempo, reúno código dedicado a um site específico em um único plugin. Quanto menos plug-ins, menos repositórios de código preciso manter.

Parece ótimo até agora? Bem, enquanto gerenciava uma grande empresa de plugins nos últimos anos e fazia mais de cem ajustes no site, percebi que esses plugins personalizados ainda são muito focados no desenvolvedor. Então, vamos examinar outra abordagem na próxima seção.

Usando um plugin de função personalizada para trechos de código

Durante a maior parte do meu tempo em grandes empresas de plugins, fui responsável pela parte técnica de nossa loja de plugins.

Coloquei qualquer código que não fosse específico do tema em um único plugin de função personalizada. Todos os ajustes em plug-ins e personalizações individuais, como redirecionamento de cartões vazios para a página de preços, propostas de upsell ou ofertas da Black Friday, foram documentados e distribuídos em vários arquivos com nomes legíveis.

Bem, “documentado” e “legível” para qualquer pessoa com acesso ao código.

Embora eu estivesse sempre por perto para fazer ajustes ou tirar dúvidas sobre eles, senti que essa não era uma forma eficiente e sustentável de lidar com a maioria das funções personalizadas.

Com cada vez mais pessoas envolvidas na gestão da loja e do site, queria dar-lhes a oportunidade de conhecer os ajustes sem ter que manter atualizada uma página dedicada em nossa base de conhecimento.

A solução foi instalar um plugin de função personalizada do WordPress que gerencia todos ou a maioria dos trechos de código no painel do WordPress.

Meu favorito pessoal é o plugin gratuito Code Snippets, mas também existem outros.

Com os trechos de código, há um item de menu dedicado no painel com todos os trechos.

Agora, qualquer pessoa com acesso de administrador pode ver os ajustes. Eu uso nomes descritivos para cada snippet, uso o campo de notas para descrevê-lo em profundidade e atribuo tags para agrupar alterações.

Lista de trechos de código no plugin Code Snippets.
Uma lista de trechos de código personalizados.

Minhas tags geralmente são o nome do plugin ou tema que é ajustado e a seção da página a que se refere, como “WooCommerce” e “Checkout”.

Exemplo de trechos de código personalizados na página do plugin Code Snippets.
Este exemplo mostra um código personalizado que exibe a data da última atualização abaixo das postagens.

Se você escolher bons nomes e uma boa estrutura, qualquer pessoa deverá ser capaz de encontrar e compreender os ajustes. Eu incluído. Eu uso esse método até mesmo em meus sites pessoais, pois proporciona muito conforto.

Usar um plug-in de função personalizada é especialmente útil para trechos de código que você precisa apenas temporariamente, como algum código de limpeza que só precisa ser executado uma vez de vez em quando ou alguma ação voltada para o frontend, como ativar uma promoção.

Isso é seguro?

Por padrão, o WordPress permite que qualquer pessoa com a função de “administrador” edite arquivos de plugins e temas no backend. Usar um plugin de código personalizado não é diferente disso. Portanto, a velha regra de ser defensivo e dar a todos apenas o papel necessário ainda se aplica.

Os desenvolvedores podem querer saber que alguns ganchos iniciais em uma solicitação de página não estão disponíveis ao gerenciar o código por meio de um plug-in, pois o próprio plug-in precisa ser carregado primeiro. Se você precisar que seu código personalizado seja carregado antes de qualquer outro plugin, verifique a opção Must Use plugins abaixo.

Funções personalizadas do WordPress em plug-ins obrigatórios

Os chamados plug-ins “obrigatórios” são uma raça especial entre os plug-ins.

Como eles são executados antes de qualquer outro plugin “normal”, eu os uso para ativar ou desativar plugins específicos para uma determinada página. Você poderia usar esse código para acelerar pseudo APIs ou chamadas para admin-ajax.php .

Outro recurso dos plug-ins Must Use é que eles são habilitados por padrão e ninguém pode desativá-los ou alterá-los por meio do painel do WordPress. Isso os torna ideais para códigos essenciais que nem mesmo os usuários administradores deveriam ser capazes de acessar.

Criando um plug-in mu

Os plug-ins obrigatórios estão hospedados na pasta wp-content/mu-plugins . Esta pasta não existe em uma nova instalação do WordPress. No entanto, alguns plug-ins ou empresas de hospedagem podem adicionar conteúdo aqui de forma dinâmica.

Para adicionar um novo plugin na pasta mu-plugin, você deve criar um arquivo PHP em seu computador com o cabeçalho do arquivo de plugin que mostrei acima para nosso plugin personalizado. Desta vez, não é importante escolher um nome exclusivo, pois os plug-ins obrigatórios não são atualizados automaticamente.

Quando estiver satisfeito com seu novo plugin de função personalizada, carregue-o manualmente via FTP para a pasta wp-content/mu-plugins . Crie a pasta mu-plugins se ela não existir.

Embora não seja possível alterar os plug-ins obrigatórios por meio do painel de administração do WordPress, você pode vê-los listados em Plug-ins > Obrigatórios.

Um plugin de função personalizada do WordPress obrigatório listado em Plugins no administrador do WordPress.
Os plug-ins obrigatórios têm sua própria guia dedicada na seção Plug-ins.

Idealmente, os plug-ins obrigatórios são plug-ins de arquivo único. O WordPress não consegue encontrá-los em subpastas, embora você possa fazer referência a arquivos adicionais no arquivo PHP principal. Mas se você criar um plugin Must Use complexo, pense em mover o código principal para um plugin normal e use o plugin MU apenas para carregar o que é necessário para ser executado antes de todos os outros plugins.

Conclusão

Exploramos os vários métodos para adicionar código personalizado ao WordPress, desde a adição tradicional de código ao arquivo functions.php de um tema, plug-ins independentes e plug-ins de funções personalizadas do WordPress até o uso de Must Use (mu-plugins). Cada método oferece seu próprio conjunto de vantagens e desvantagens potenciais, adaptados a diferentes necessidades e cenários.

Como você pode ver, esta tem sido uma jornada para mim como desenvolvedor e gerente de projetos. Ainda hoje utilizo todos os métodos, dependendo do tipo de alteração e de quem deve ter acesso a ela.

Espero que este artigo ajude vocês, meus colegas desenvolvedores juniores e seniores, a tomar suas próprias decisões sobre a maneira certa de adicionar código como um plugin de função personalizada no WordPress. Deixe-me saber nos comentários se perdi alguma coisa.