Qual é a melhor maneira de modificar um plugin? Frequentemente, quero fazer pequenas alterações em uma ou duas funções em um grande plugin. Isso é feito com facilidade, mas preciso usar comentários para marcar minhas alterações e modificar o plug-in novamente após uma atualização. Idealmente, gostaria de deixar o plug-in sozinho e fazer minhas alterações em outro lugar, como fazemos com temas e temas filhos. Posso criar um plug-in que exija o plug-in pai e o substitua?
plugins
customization
Mike Wheaton
fonte
fonte
Respostas:
IMHO, a melhor abordagem é forçar o plug-in para manter as alterações ou enviar correções ao desenvolvedor do plug-in, para que as alterações façam parte do plug-in original.
Criar um "plug-in filho" realmente não é fácil. O conceito "Criança Tema" realmente se aplica aos arquivos de modelo que se acostumar, mais ainda do que as funções temáticas (e, na verdade, o
functions.php
arquivo a partir de pai e filho são carregados, o que faz causar problemas para inadequadamente codificadosfunctions.php
arquivos ou o filho ou pai Tema).fonte
O caminho "certo" obviamente depende do plugin. Alguns plugins são mais fáceis de editar do que outros, mas a maioria dos plugins pode ser modificada por outros plugins.
Por exemplo, se um plug-in tem uma função conectada ao WordPress com uma ação, é simples criar outro plug-in que solte essa função com remove_action e adicione sua função de substituição. Esse tipo de método permitirá que você substitua funções individuais em plugins por suas próprias versões modificadas, sem modificar o plug-in original.
O mesmo conceito funciona com filtros, obviamente.
fonte
A melhor maneira seria cloná-lo e alterar o nome do plug-in no cabeçalho e alterar o nome do diretório. Dessa forma, você também pode ter o original instalado, mas não ativado, para receber alertas quando as atualizações forem lançadas.
fonte
Isso é relativamente fácil se o plug-in estiver sob controle de origem do Git devido à natureza distribuída do Git, mas muitos plug-ins do WordPress (e todos os que estão no repositório oficial) estão no Subversion. Uso ramificações de fornecedor e svn_load_dirs.php se realmente preciso modificar um plug-in, mas isso requer um nível de conforto razoavelmente alto com o Subversion.
Se o plug-in não expuser nenhum repositório, eu recomendo transformá-lo em um repositório Git e aplicar manualmente novas versões.
No final, os sistemas de controle de versão são a única maneira sensata de aplicar novamente as alterações nas novas versões upstream.
fonte
Concordo com a resposta de Annika Backstrom , mas gostaria de compartilhar minha solução preferida.
Como a maioria dos plugins está no svn, eu uso uma ferramenta chamada git-svn para criar um espelho do git.
Depois, apenas faço uma ramificação e comprometo minhas alterações lá.
Quando o plug-in é atualizado, basta retirar do repositório svn e entrar no meu ramo personalizado.
fonte