Maneira apropriada de modificar o plugin

13

Qual é a melhor maneira de modificar um plugin? Eu freqüentemente quero fazer pequenas alterações em uma ou duas funções dentro de um grande plugin. Isso é feito facilmente, mas tenho que 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, assim como fazemos com temas e temas infantis. Posso criar um plug-in que exija o plug-in pai e substituí-lo?

    
por Mike Wheaton 14.07.2011 / 14:31

6 respostas

7

IMHO, a melhor abordagem é usar o Plugin para manter as alterações ou enviar correções para o desenvolvedor do Plugin para que suas alterações façam parte do Plug-in original.

Criar um "Plugin Filho" realmente não é fácil. O conceito "Tema Infantil" realmente se aplica aos arquivos de modelo que são usados, mais do que as funções do Tema (e, de fato, o arquivo functions.php do Pai e do Filho são carregados, que causa problemas para arquivos functions.php codificados indevidamente no Tema Filho ou Pai).

    
por Chip Bennett 14.07.2011 / 14:40
7

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 tiver uma função conectada ao WordPress com uma ação, é simples fazer outro plug-in que desmarque essa função com remove_action e, em vez disso, adicione a função de substituição. Esse tipo de método permite substituir funções individuais em plug-ins com suas próprias versões modificadas, sem modificar o plug-in original.

O mesmo conceito funciona com filtros, obviamente.

    
por Otto 19.07.2011 / 09:33
4

A melhor maneira seria simplesmente clonar e alterar o Nome do Plugin 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 que você ainda receba alertas quando as atualizações forem lançadas.

<?php
/*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A "Slug" license name e.g. GPL2
*/
?>
    
por Chris_O 14.07.2011 / 14:36
2

Isto é relativamente fácil se o plugin estiver sob controle de fonte do Git devido à natureza distribuída do Git, mas muitos plugins do WordPress (e todos aqueles no repositório oficial) estão no Subversion. Eu uso filiais de fornecedores e svn_load_dirs.php se eu realmente precisa modificar um plugin, mas isso requer um nível de conforto razoavelmente alto com o Subversion.

Se o plugin 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 sã de reaplicar alterações em novas versões upstream.

    
por Annika Backstrom 17.07.2011 / 14:23
2

Concordo com a resposta de Annika Backstrom , mas eu gostaria de compartilhar minha solução preferida.

Como a maioria dos plugins estão sob o svn, eu uso uma ferramenta chamada git-svn para criar um espelho git.

Depois, faço uma ramificação e faço as alterações lá.

Quando o plugin é atualizado pelo upstream, eu apenas pego do svn repo e participo no meu branch customizado.

    
por scribu 19.07.2011 / 17:43
-2
  1. Use um filtro no seu tema filho se o plug-in o incluir

Ou

  1. Estenda a classe PHP do plug-in no seu tema filho.
por Michelle 10.03.2018 / 10:56