Se você está construindo isso para um único cliente, você deve absolutamente aproveitar o mu-plugins
.
Existem muitas coisas no WordPress que você não pode fazer em functions.php
. Funções plugáveis são uma delas, mas, mais óbvio, vários ganchos (ações e filtros) são acionados antes de functions.php
. Em alguns casos, esses ganchos até disparam antes de plugins regulares, o que requer que você use mu-plugins
ou um plugin ativado pela rede. Em outros casos, até mesmo um plugin mu é tarde demais. Talvez você precise de algo em sunrise.php
. Ou até mesmo algo (uma constante ou não) em wp-config.php
.
Eu preferiria adicionar alguns ganchos a funções conectáveis, do que para facilitar sua substituição. Não é provável que voltemos a ter outra função conectável - eles são mais antigos e quase nunca vi uma situação em que haja vantagem sobre um gancho antiquado (novo?).
Eu ainda concordo, seis anos depois, com Andy Skelton - "Existem muitas diferenças entre o arquivo de funções de um tema e um plugin. Vamos manter assim."
Isso tudo de lado, uma mudança como essa nunca poderia acontecer. Isso quebraria muitas coisas. Inúmeros temas chamam funções no corpo de functions.php
, o que resultaria em um erro fatal se pluggable.php
já não tivesse sido carregado - como current_user_can()
ou wp_create_nonce()
. Eles todos falharam. E também quebraria plugins, o que normalmente poderia começar a chamar essas funções em plugins_loaded
. (Apenas mova pluggable.php
mais baixo em wp-settings.php
e aposto que metade do núcleo quebraria - ou, no mínimo, o personalizador faria isso.)
Por fim, há a ideia inevitável de que um tema poderia incluir um arquivo separado, como pluggable.php
, que poderíamos carregar assim que carregássemos os plug-ins e, portanto, poderia substituir as funções plugáveis. Além de ser uma má ideia (veja os quatro primeiros parágrafos deste comentário), ainda não seria compatível, porque até o setup_theme
hook, um poderia substituir qual tema deve ser carregado filtrando os valores de folha de estilo e modelo.
Infelizmente, isso não é aceitável, pois o WordPress é arquitetado. O bom é que existem inúmeras (melhores) maneiras de fazê-lo.
(Originalmente postado aqui: enlace )