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.
Respostas:
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!
fonte
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
fonte
Eu acredito que isso, diretamente do WordPress Codex , diz tudo:
:)
fonte
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.
fonte
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.
fonte