Modificando arquivos principais do WordPress

20

Por quê?

Às vezes, uma solução fácil para alterar o comportamento do próprio WordPress ou de um plug-in pode ser alterar os arquivos do plug-in ou do WordPress diretamente. Ao apresentar essa ideia, a resposta usual é:

  

Não invada o núcleo.

Por que geralmente é uma má ideia alterar os arquivos principais?

Considere?

Às vezes, no entanto, coisas que podem ser críticas para um site são simplesmente impossíveis de serem feitas, sem alterar os arquivos principais. Quando em tal situação, o que você precisa estar ciente, antes de ir em frente e começar a invadir o núcleo?

Como?

Você considerou todas as opções, mas a única solução é invadir arquivos principais. Como você deve fazer isso? Como terá um núcleo alterado, influenciar fluxos de trabalho, como atualização?

    
por googletorp 09.09.2010 / 09:08

3 respostas

19

Se você precisar hackear o núcleo, considere fazer isso de uma forma que o torne extensível para outras pessoas.

Adicionar um gancho de ação

Nove em cada dez vezes, você poderia fazer o que você queria se houvesse apenas uma chamada do_action extra em um arquivo específico. Nesse caso, adicione a ação, documente-a e envie um patch por meio do Trac . Se há uma boa razão para o seu patch (ou seja, você não é o único que poderia usá-lo), então provavelmente você pode adicioná-lo ao núcleo.

Em seguida, construa um plug-in personalizado (você não precisa liberar / distribuir!) que se conecte a este novo gancho e execute qualquer função que você precise fazer.

Refatorar um arquivo principal

Outras vezes, você só precisa de um código para se comportar de maneira diferente. Passe uma variável por referência, por exemplo, ou retorne um valor em vez de ecoá-lo. Reserve algum tempo para sentar e refatorar o código para que ele faça o que você precisa fazer ... então envie um patch via Trac para que o resto de nós possa se beneficiar do seu trabalho.

Você vê um tema se desenvolvendo aqui? O núcleo de hackers não é necessariamente um não-não ... apenas algo que a maioria dos desenvolvedores irá desencorajar para novos usuários ou programadores iniciantes (se você estiver nos perguntando como fazer alguma coisa, vamos sugerir um plug-in toda vez antes de considerar sugerir que você hackeia o núcleo).

O núcleo de hackers é a maneira como o WordPress se desenvolve e evolui, mas é perigoso para alguém que está aprendendo PHP ou sem experiência em trabalhar com arquivos WP. Por favor, comece com um plug-in antes de tocar no core - se você quebrar um plug-in, poderá desinstalá-lo rapidamente (removendo via FTP se necessário) ... mas se você quebrar o núcleo, coisas ruins podem acontecer no seu site e potencialmente no seu banco de dados também.

Mas se você estiver em uma situação em que um hack core é inevitável, faça a alteração. Além disso, publique sua alteração em um local de destaque (se o seu blog for altamente visível, isso pode ser suficiente ... mas sugiro Trac porque é assim que as mudanças na comunidade são puxadas para o próximo lançamento). Sua alteração pode ser a solução mágica que poderia corrigir problemas em cem sites diferentes ... então, contribua de volta para a comunidade que ajudou a criar seu site.

Se a alteração for confirmada, seu hack se tornará parte do núcleo e você não precisará se preocupar com isso no futuro. Se não, pelo menos você tem documentação detalhada sobre como re-implementar o hack depois de atualizar o WP em 3 meses.

    
por EAMann 09.09.2010 / 16:27
2

Os problemas são:

  1. Sempre que você fizer uma atualização do núcleo (por exemplo, devido a uma correção de segurança, etc), será necessário atualizá-lo manualmente, em vez de executar o atualizador automático.
    Se você deseja fazer isso, torne a vida mais fácil para você:
    • marca cada alteração com um marcador comum (por exemplo, // PATCH START e // PATCH END )
    • use uma ferramenta como o WinMerge para comparar a fonte existente com a nova fonte e copie as alterações quando necessário.
    • você terá que ficar atento caso a área do código que você está copiando tenha mudado e faça as alterações apropriadas nos seus patches
    • Lembre-se de que esse é um trabalho "interminável", que ocupa um tempo faturável, a menos que você possa reabastecer seu cliente por ele.
  2. Você pode causar problemas de incompatibilidade com plug-ins que esperam que o núcleo funcione de uma determinada maneira - isso exigirá testes extras

Às vezes isso é 100% inevitável, mas eu quase sempre consigo encontrar outra maneira de conseguir coisas, ou alterar especificações devido ao provável custo do tempo gasto fazendo isso. É apenas um pesadelo de manutenção, e muitas pessoas vão para o núcleo de hackers, em vez de procurar a solução adequada.

    
por Dan Smart 09.09.2010 / 10:20
2
  

Não invada o núcleo.

Bem, isso é porque é uma sugestão para o primeiro nível, usuários inexperientes. Esses hackers quebram a instalação, não podem garantir que as alterações persistam, etc.

  

Claro, corte o núcleo!

Claro, você pode hackear o núcleo, por exemplo, usando um sistema de gerenciamento de versão como o SVN. Ele ajuda você a manter suas próprias alterações no código principal alinhadas às atualizações do projeto. Também ajuda a criar patches para o Wordpress e enviá-los para o projeto.

O núcleo de hackers faz com que o Wordpress evolua.

Considerações

Se você não quiser instalar um SVN completo e ainda souber quais (alguns) arquivos foram alterados, poderá usar mais ferramentas de baixo nível como Diff / Merge (para ganhar : WinMerge ) ou editores com recursos de comparação (por exemplo, Notepad ++ com o 'Compare Plugin' ). No Linux, você pode instalar facilmente os utilitários de linha de comando que fazem o mesmo. O editor Geany vem com uma boa integração shell. .

Eu prefiro o Eclipse PDT para os trabalhos difíceis. Mas isso não é para a edição rápida ou hackear.

Então, eu diria que, se você estiver usando as ferramentas certas e quiser cuidar, hackear o núcleo é o caminho a seguir. Se você estiver hackeando algo que sobrou em algum outro servidor de usuários Noob (sim, o Wordpress é bastante popular), apenas forneça um plugin que pode ser descartado facilmente se quebrar alguma coisa.

    
por hakre 09.09.2010 / 11:13

Tags