Para desenvolver temas ou fazer alterações em um blog WordPress, muitas vezes é necessário adicionar muitas linhas de código ao arquivo functions.php. Em um dos projetos em que tenho trabalhado, o functions.php chegou a ter mais de 1000 linhas e não duvido que haja arquivos maiores por aí. Problema: com tanto php em apenas um arquivo, fica difíl manter o código, pois qualquer edição requer ainda mais cuidado para não alterar outras definiçoes.
Além disso, muito desse código não se limita a funcionalidades do tema utilizado, ali também são adicionados tipos de post, taxonomias e outras implementações que são necessárias para o funcionamento do blog mesmo que o tema seja alterado. E, ao mudar o tema, é preciso colocar todo esse código em um novo arquivo functions.php.
Pesquisando por uma solução para separar o conteúdo de functions.php em mais arquivos, encontrei uma possibilidade que existe no WordPress desde a versão 2.8: utilizar a pasta “mu-plugins”. Nesse caso, “mu” significa “must use”, isto é, indispensável. Essa pasta não vem nas instalações padrão do WordPress e deve ser criada dentro da pasta “wp-content”. Os plugins em mu-plugins são utilizados automaticamente, eles são listados na opção “Indispensáveis” e não podem ser desativados por meio do painel de administração como os demais plugins.
E estes arquivos devem conter o cabeçalho com informações sobre o plugin:
<?php /** * Plugin Name: Nome do Plugin * Plugin URI: Link para o repositório do plugin * Description: Descreva o que o plugin faz. * Author: Seu nome * Author URI: Link de quem escreveu o plugin * Version: 1.0 */ /* Código do plugin */ ?>
Depois de separar em outros quatro arquivos dentro de mu-plugins o código que definia tipos de post, meta box e outras configurações que não dependem do tema, o arquivo functions.php, de 1015 linhas, passou a ter apenas 145. E, se o tema mudar, todas as configurações nesses novos plugins permanecem inalteradas.