it-swarm-es.com

¿Cuáles son algunas de las razones por las que no debes hackear los archivos principales de WordPress?

A menudo, una solución rápida a un problema,canse resuelve al hackear el núcleo de WordPress, que está cambiando el código que es WordPress.

Este es un camino muy peligroso para tomar! ¡No lo hagas nunca!


Siempre se puede cambiar el funcionamiento de WordPress, mediante el uso de complementos. A veces, esto puede ser bastante aburrido y difícil, pero el trabajo adicional siempre supera los problemas que surgen al cambiar el núcleo de WordPress.

Algunos dirían que puede haber situaciones en las que hackear el núcleo es la única solución, pero si está haciendo preguntas, definitivamente no está en esa situación .

Esta pregunta pretende ser una introducción a un trabajo colectivo de por qué nunca debe hackear el núcleo de WordPress, que podemos usar como referencia. Si tiene algo que agregar, siéntase libre de agregarlo como una pregunta.

8
googletorp

¡La mejor razón para no piratear el núcleo es que todo lo que esté haciendo debe ser modificado como un parche para el núcleo!

Obviamente, TODO tu código no sería un buen parche, o al menos rara vez lo haría. En su lugar, debe averiguar qué gancho (acción o filtro) falta en el núcleo que le permitiría hacer lo que sea necesario sin piratear el núcleo. No necesitamos piratear el núcleo cuando hay filtros/acciones adecuados, por lo que encontrar el gancho faltante siempre eliminará la necesidad de piratear el núcleo.

A menudo, esto puede requerir un poco de resolución de problemas difícil y un arduo trabajo, pero más a menudo, entonces no es lo que sucede si descubre que ya hay un gancho para resolver su problema , ¡así que no tiene que hackear el núcleo!

En el raro caso en el que realmente no hay ningún gancho, solo necesita publicar en trac explicando por qué su gancho debe existir. Si confiesas tu nuevo gancho, entonces tienes un hackeo temporal de 1 línea al núcleo del que no tendrás que preocuparte la próxima vez que actualices.

Incluso si apesta a que se hagan las cosas en el trac de Core (se necesita algo de convicción para comprometerse), al menos ha hervido su hack de núcleo al mínimo posible: 1 línea de código para su acción/filtro. Cuando actualice 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 seguir siendo el mismo!

6
jerclarke

Creo que esto, directamente desde WordPress Codex , lo dice todo:

Photo: Don't Hack WordPress Core; Or the Kitten Get's it!

:)

3
MikeSchinkel

También existe el hecho de que una vez que actualiza WordPress a la última versión, todos sus cambios en los archivos principales se sobrescriben

3
Tom J Nowell

Esta advertencia es muy antigua, mucho antes de los tiempos de los sistemas de control de versiones descentralizados comoGit. En aquellos días, para hackear el núcleo, necesitabas mantener tus cambios como un conjunto de parches tuyos. Debido a que algunos desarrolladores (en su mayoría inexpertos que jugaban con Wordpress) no hacían parches para hacer un seguimiento de sus cambios, se encontraron con un problema: al final tuvieron problemas con la actualización de Worpdress a la nueva versión y nació el dicho.

La advertencia fue más o menos una referencia lateral cultural a "Cada vez que te masturbas ... Dios mata a un gatito"image caption y obviamente significa diversión. Sin embargo, la analogía entre"hackear wordpress core"y"masturbating"fue mencionada. Esto probablemente ha llevado a bastante popularidad.

Claro que el hacking core es una espada de dos caras y supongo que es por eso que lo has preguntado.

En primer lugar, es perfectamente válido, posible yfactibletanto en el pasado como en el presente para hackear el núcleo. En el pasado, con conjuntos de parches e incluso más fácil hoy en día, utilizando git y git repo de Wordpress disponibles públicamente en Github .

En lugar de decirles a los usuarios (que quizás ni siquiera entiendan de qué se trata) que son tontos al hacer bromas sobre ellos, es mejor animarlos y educarlos.

Además, y este es uno de los lados más oscuros de la historia de Wordpress, la comunidad de Wordpress no se promociona bien aquí. A pesar de que en cierto modo alienta a los usuarios a llevar los cambios en sentido ascendente (es decir, al repositorio de códigos original), lo que normalmente es bueno, Wordpress no hizo nada por las bibliotecas que han incorporado a su árbol desde fuentes ascendentes. Así que mantén estos dichos a la ligera, no es nada que Wordpressleadycorelos desarrolladores hayan seguido para el código que han sido tomados de otros también.

Entonces, si juzgas el dicho mirando las manos de los desarrolladores, es solo 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. Hágalo de la manera que le plazcayounot others. Wordpress es software libre por una razón y debe estar orgulloso de él y de lo que usted está haciendo con él. En público o en privado. Si está buscando formas de hacer esto más factible, cree un flujo de trabajo a su alrededor como lo haría también si estuviera haciendo otro tipo de trabajo de desarrollo.

1
hakre

Ha habido 3 veces y media que he necesitado hackear el núcleo para resolver un problema.

1) Fue una corrección de errores. Lo informé como un error en Trac junto con un parche de diferencias. La funcionalidad se está volviendo a trabajar 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) Fue para agregar un registro muy detallado para tratar de 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 incorporados 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 de la base.

3b) Pensé que necesitaba modificar el núcleo para cambiar los enlaces de moderación de comentarios, pero mientras estaba investigando, encontré algunos enlaces que no conocía y pude implementar la función como un complemento.

1
gabrielk