A menudo, una solución rápida a un problema puede resolverse pirateando el núcleo de WordPress, es decir, cambiando el código que es el propio WordPress.
¡Este es un camino muy peligroso! ¡No lo hagas nunca!
Siempre puedes cambiar el funcionamiento de WordPress mediante el uso de complementos. Esto a veces puede ser bastante cansado y difícil, pero el trabajo adicional siempre supera los problemas que obtienes al cambiar el núcleo de WordPress.
Algunos dirían que puede haber situaciones en las que piratear el núcleo sea la única solución, pero si estás haciendo preguntas, definitivamente no estás en esa situación .
Esta pregunta, pretende ser una introducción a un trabajo colectivo de por qué nunca debes hackear el núcleo de WordPress, que podemos usar como referencia. Si tiene algo que agregar, no dude en agregarlo como una pregunta.
Respuestas:
¡La mejor razón para no hackear core es que lo que sea que esté haciendo debe ser modificado como un parche para core en su lugar!
Obviamente TODO su código no sería un buen parche, o al menos raramente lo haría. En cambio, debe averiguar qué gancho (acción o filtro) falta en el núcleo que le permitiría hacer lo que sea que necesite hacer sin hackear el núcleo. No necesitamos hackear core cuando hay filtros / acciones adecuadas, por lo que encontrar cuál es el gancho que falta siempre eliminará la necesidad de hackear core.
Esto a menudo puede requerir un trabajo difícil para resolver problemas y un trabajo difícil, pero lo más frecuente es que descubras que ya hay un gancho para resolver tu problema , ¡así que no tienes que hackear el núcleo!
En el raro escenario en el que realmente no hay gancho, solo necesita publicar en el seguimiento explicando por qué su gancho debe existir. Si confirma su nuevo enlace, entonces tiene un truco temporal de 1 línea al núcleo que no tendrá que preocuparse por la próxima vez que actualice.
Incluso si apestas para hacer cosas en el Core trac (se necesita algo convincente para que las cosas se comprometan), al menos has hervido tu pirateo central al mínimo posible: 1 línea de código para tu acción / filtro. Cuando actualiza WP, ahora ha reemplazado todo el código que introdujo en el núcleo con una línea que debe actualizarse, ¡y su complemento puede permanecer igual!
fuente
También existe el hecho de que una vez que actualice WordPress a la última versión, todos sus cambios en los archivos principales se sobrescribirán
fuente
Creo que esto, directamente de WordPress Codex , lo dice todo:
:)
fuente
Esta advertencia es muy antigua, mucho antes de los tiempos de los sistemas de control de versiones descentralizados como Git . En aquellos días, para hackear el núcleo, tenía que mantener sus cambios como un conjunto de parches propios. Debido a que algunos (desarrolladores en su mayoría inexpertos jugando con Wordpress) no hicieron parches para realizar un seguimiento de sus cambios, se encontraron con un problema: al final tuvieron problemas para actualizar Worpdress a la nueva versión y nació el dicho.
La advertencia fue más o menos una referencia cultural a la leyenda "Cada vez que te masturbas ... Dios mata a un gatito" y obviamente fue divertido. Sin embargo, surgió la analogía entre "piratear el núcleo de WordPress" y "masturbarse" . Esto probablemente ha llevado a bastante popularidad.
Claro que hackear el núcleo es una espada de dos lados y supongo que es por eso que lo has pedido.
En primer lugar, es perfectamente válido, posible y factible tanto en el pasado como en el presente para hackear el núcleo. En el pasado con conjuntos de parches y aún más fácil hoy en día usando git y el repositorio git de Wordpress disponible públicamente en Github .
En lugar de decirles a los usuarios (que tal vez ni siquiera entiendan de qué se trata) que son tontos haciendo bromas sobre ellos, es mejor alentarlos y educarlos.
Además, y este es uno de los lados más oscuros en la historia de Wordpress, la comunidad de Wordpress no promueve bien aquí. A pesar de que alienta a los usuarios a llevar los cambios en sentido ascendente (es decir, en el repositorio de código original), lo cual es algo bueno normalmente, Wordpress no hizo por las bibliotecas que han adquirido en su árbol desde fuentes ascendentes. Así que mantén estos dichos a la ligera, no es nada que los desarrolladores principales y principales de Wordpress siguieron para el código que también han sido tomados de otros.
Entonces, si juzgas el dicho mirando las manos de los desarrolladores, es puramente una broma, es solo una referencia cultural vulgar.
La mejor sugerencia que puedo dar es si eres un desarrollador y quieres hacer cambios en el núcleo, hazlo. Hazlo de la manera que no te agrade a los demás. Wordpress es software libre por una razón y deberías estar orgulloso de él y de lo que estás haciendo con él. Público o privado. Si está buscando maneras de hacer esto más factible, cree un flujo de trabajo a su alrededor como lo haría también si está haciendo otro tipo de trabajo de desarrollo.
fuente
Ha habido 3 veces y media que he necesitado hackear el núcleo para resolver un problema.
1) Se corrigió un error. Lo informé como un error en Trac junto con un parche diff. La funcionalidad ya está siendo reelaborada en la próxima versión de WP, básicamente invalidando el error. Hasta entonces, puedo aplicar fácilmente el parche que he creado en las instalaciones actuales / nuevas.
2) consistía en agregar un registro muy detallado para intentar localizar un problema muy específico que un usuario estaba encontrando. No es una situación cotidiana, y ciertamente no está relacionada con la funcionalidad.
3a) Quería agregar un campo adicional a Categorías en WP 2.8.5. Los ganchos integrados para hacer esto no funcionaron correctamente (problema conocido), y creo que este problema en particular se solucionó en el árbol 2.9. Al final del día, la implementación fue defectuosa y rediseñamos la función para que funcione de una manera diferente que no requiera una modificación central.
3b) Pensé que necesitaba modificar el núcleo para cambiar los enlaces de moderación de comentarios, pero mientras estaba cavando encontré algunos ganchos que antes no conocía y pude implementar la función como un complemento.
fuente