Quais são algumas das razões pelas quais você não deve invadir os arquivos principais do WordPress?

9

Muitas vezes, uma solução rápida para um problema pode ser resolvida invadindo o núcleo do WordPress, que está alterando o código que é o próprio WordPress.

Esta é uma estrada muito perigosa a seguir! Não faça isso nunca!


Você sempre pode alterar o funcionamento do WordPress usando plug-ins. Às vezes, isso pode ser bastante cansativo e difícil, mas o trabalho extra sempre supera os problemas que você obtém ao alterar o próprio núcleo do WordPress.

Alguns diriam que pode haver situações em que invadir o núcleo é a única solução, mas se você está aqui fazendo perguntas, definitivamente não está nessa situação .

Esta pergunta pretende ser uma introdução a um trabalho coletivo de por que você nunca deve invadir o núcleo do WordPress, que podemos usar como referência. Se você tiver algo a acrescentar, sinta-se à vontade para adicioná-lo como uma pergunta.

usuário
fonte
@googletorp : Você é demais !
MikeSchinkel
Não concordo que nunca se deva fazê-lo; a pergunta original tem algumas respostas que apontam para as razões, por isso dou uma nota negativa a esta pergunta. Além disso, também não concordo que, se você está aqui fazendo perguntas, definitivamente não está nessa situação . Também é um site para especialistas , portanto, perguntas sobre o núcleo de hackers não devem ser censuradas. Mas talvez devêssemos discutir mais sobre isso no meta site .
Jan Fabry

Respostas:

5

A melhor razão para não hackear o núcleo é que tudo o que você estiver fazendo deve ser reformulado como um patch para o núcleo!

Obviamente, TODO o seu código não faria um bom patch, ou pelo menos raramente faria. Em vez disso, você precisa descobrir qual gancho (ação ou filtro) está faltando no núcleo, o que permitiria fazer o que for necessário sem o núcleo do hacking. Não precisamos hackear o núcleo quando houver filtros / ações adequados; portanto, descobrir qual é o gancho ausente sempre removerá a necessidade de hackear o núcleo.

Isso geralmente pode exigir algumas tarefas difíceis para solucionar problemas e tarefas complicadas, mas, na maioria das vezes, não é o que acontece é que você descobre que já existe um gancho para resolver seu problema , para que você não precise cortar o núcleo!

No raro cenário em que realmente não há gancho, basta postar no trac explicando por que ele precisa existir. Se o seu novo gancho for confirmado, você terá um hack temporário de 1 linha no núcleo, que não precisará se preocupar com a próxima atualização.

Mesmo que você não consiga fazer as coisas no Core trac (leva algum tempo para convencer as coisas a serem comprometidas), pelo menos você cozinhou seu hack do núcleo no mínimo possível: 1 linha de código para sua ação / filtro. Quando você atualiza o WP, agora substitui todo o código inserido no núcleo por uma linha que precisa ser atualizada, e seu plug-in pode permanecer o mesmo!

jerclarke
fonte
@ Jeremy Clark - Boa!
MikeSchinkel
3

Também existe o fato de que, depois de atualizar o wordpress para a versão mais recente, todas as alterações nos arquivos principais são substituídas

Tom J Nowell
fonte
AFAIK, esse foi o motivo original, não tecnicamente (você pode organizar isso de uma maneira que não represente um problema para editar sua instalação), mas por causa dos usuários queixam-se nos fóruns de suporte do Wordpress que a atualização quebrou o site. Como a atualização muitas vezes já apresentava problemas por conta própria, alguns usuários queriam garantir que pelo menos o número de problemas "criados pelo usuário" fosse baixo e fora da equação.
23713 hakre
1

Esse aviso é muito antigo, muito antes dos tempos dos sistemas de controle de versão descentralizados como o Git . Naqueles dias, para hackear o núcleo, você precisava manter suas alterações como um conjunto de patches. Como alguns (principalmente desenvolvedores inexperientes que brincavam com o Wordpress) não fizeram correções para acompanhar suas alterações, eles tiveram um problema: no final, eles tiveram problemas ao atualizar o Worpdress para a nova versão e nasceu o ditado.

O aviso foi mais ou menos uma referência cultural à legenda da imagem "Toda vez que você se masturba ... Deus mata um gatinho" e obviamente é divertido. No entanto, a analogia entre "hacking wordpress core" e "masturbating" foi levantada. Isso provavelmente levou a bastante popularidade.

Claro que o núcleo de hackers é uma espada de dois lados e acho que é por isso que você perguntou.

Antes de tudo, é perfeitamente válido, possível e viável, tanto no passado quanto no presente, hackear o núcleo. No passado, com conjuntos de patches e ainda mais fácil hoje, usando o git e o repositório git do Wordpress disponível publicamente no Github .

Em vez de dizer aos usuários (que podem nem entender do que se trata) que eles são burros fazendo piadas sobre eles, é melhor incentivá-los e educá-los.

Além disso, e este é um dos lados mais sombrios da história do Wordpress, a comunidade do Wordpress não promove aqui bem. Mesmo que encoraje os usuários a trazer alterações a montante (o que significa no repositório de código original), o que é uma coisa boa normalmente, o Wordpress não fez as bibliotecas que eles assumiram na árvore a partir de fontes de upstream. Portanto, mantenha essas palavras de ânimo leve, não é nada que o líder do Wordpress e os principais desenvolvedores tenham seguido para o código que eles também substituíram os outros.

Portanto, se você julga o ditado olhando para as mãos dos desenvolvedores, é puramente uma piada, é apenas uma referência cultural vulgar.

A melhor sugestão que posso dar é se você é um desenvolvedor e deseja fazer alterações no núcleo, faça-o. Faça da maneira que agrada a você, não aos outros. O Wordpress é um software livre por um motivo e você deve se orgulhar disso e do que você está fazendo com ele. Pública ou privada. Se você estiver procurando maneiras de tornar isso mais viável, crie um fluxo de trabalho em torno dele, como faria se estivesse executando outro tipo de trabalho de desenvolvimento.

hakre
fonte
0

Houve três vezes e meia que eu precisava invadir o núcleo para resolver um problema.

1) Foi uma correção de bug. Eu relatei isso como um bug no Trac junto com um patch diff. A funcionalidade já está sendo re-trabalhada na próxima versão do WP, basicamente invalidando o bug. Até lá, posso aplicar facilmente o patch que criei nas instalações atuais / novas.

2) Foi adicionar um registro muito detalhado para tentar rastrear um problema muito específico que um usuário estava encontrando. Não é uma situação todos os dias e certamente não está relacionada à funcionalidade.

3a) Eu queria adicionar um campo extra às categorias no WP 2.8.5. Os ganchos internos para fazer isso não funcionaram corretamente (problema conhecido) e acredito que esse problema específico foi corrigido na árvore 2.9. No final do dia, a implementação foi falha e redesenhamos o recurso para funcionar de uma maneira diferente que não exigisse uma modificação básica.

3b) Pensei que precisava modificar o núcleo para alterar os links de moderação de comentários, mas enquanto estava pesquisando, encontrei alguns ganchos que anteriormente não conhecia e que consegui implementar o recurso como um plug-in.

gabrielk
fonte
Eu diria que a principal razão para invadir os arquivos principais é fazê-los funcionar como eu preciso deles, não como os outros acham que eu possa precisar deles. Isso pode ser temporário (como no seu exemplo de depuração), mas também pode ser por uma versão completa ou mesmo pelas versões principais devido a problemas que não são corrigidos no pacote original do wordpress (seja wordpress.org ou pré-empacotado por alguém) outro).
23413 hakre