WordPress: separe o conteúdo de functions.php em vários arquivos

//

Tatiane Pires

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.

wordpress-must-use-plugin-folder

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.

Deixe um comentário