it-swarm-pt.tech

Modificando arquivos principais do WordPress

Por quê?

Às vezes, uma correção fácil para alterar o comportamento do próprio WordPress ou um plugin poderia ser para alterar os arquivos do plugin ou WordPress diretamente. Quando surge essa ideia, a resposta usual é:

Não corte o núcleo.

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

Considerar?

Às vezes, no entanto, coisas que podem ser críticas para um site são simplesmente impossíveis de fazer, de uma maneira agradável, 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?

21
googletorp

Se você deve hackear o núcleo, considere fazê-lo de uma maneira que o torne extensível para outros.

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 uma correção via Trac. Se houver um bom motivo para o seu patch (ou seja, você não é o único que iria usá-lo), então você provavelmente pode obtê-lo adicionado ao núcleo.

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

Refatorar um arquivo principal

Outras vezes, você pode precisar apenas 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 Tracpara 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ádesencorajarpara novos usuários ou programadores iniciantes (se você estiver nos perguntando como fazer algo, nós sugeriremos um plug-in toda vez antes de considerar sugerir que você hackeia o núcleo).

Hacking core é a maneira como o WordPress se desenvolve e evolui, mas é perigoso para alguém que está aprendendo apenas 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 mudança. Além disso, publique sua alteração em um local de destaque (se o seu blog é altamente visível, isso pode ser suficiente ... mas eu sugiro Trac porque é assim que as mudanças na comunidade são puxadas para a próxima versão). 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 você a criar seu site.

Se a mudança 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 WP em 3 meses.

21
EAMann

Não corte o núcleo.

Bem, isso é porque é uma sugestão para o primeiro nível, usuários inexperientes. Esses hackers quebrariam sua instalação, eles não podem garantir que suas alterações continuem com uma atualização, etc.

Claro, corte o núcleo!

Claro que você pode realmente cortar 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 é de fato o que faz Wordpress evoluir.

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 win: WinMerge ) ou editores com recursos de comparação (por exemplo, Notepad ++ com 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 integração do Nice Shell entre. .

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

Então, eu diria, se você estiver usando as ferramentas certas e quiser cuidar, cortar o núcleo é o caminho a percorrer. Se você está hackeando alguma coisa que sobrou em algum outro servidor de usuários Noob (sim, o Wordpress é muito popular), basta fornecer um plugin que pode ser jogado fora facilmente se quebrar alguma coisa.

3
hakre

Os problemas são:

  1. Toda vez 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ê:
    • marque todas as alterações 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 tomar cuidado caso a área do código que você está copiando tenha mudado e faça as alterações apropriadas nos seus patches.
    • esteja ciente de que este é um trabalho "sem fim", ocupando o tempo faturável, a menos que você possa reabastecer seu cliente por isso.
  2. Você pode causar problemas de incompatibilidade com plugins que esperam que o núcleo funcione de uma determinada maneira - isso exigirá testes extras

Às vezes, isso é 100% inevitável, mas quase sempre consigo encontrar outra maneira de conseguir as coisas, ou alterar as 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.

2
Dan Smart