it-swarm-es.com

Modificando los archivos principales de WordPress

¿Por qué?

A veces, una solución fácil para alterar el comportamiento de WordPress o un complemento podría ser alterar los archivos del complemento o WordPress directamente. Al llegar a esa idea, la respuesta habitual es:

No hackear el núcleo.

¿Por qué es generalmente una mala idea cambiar los archivos principales?

¿Considerar?

A veces, sin embargo, las cosas que pueden ser críticas para un sitio son simplemente imposibles de hacer, de una manera agradable sin alterar los archivos centrales. Cuando se encuentra en una situación así, ¿de qué necesita estar consciente antes de seguir adelante y comenzar a hackear el núcleo?

¿Cómo?

Usted ha considerado todas las opciones, pero la única solución es hackear los archivos principales. ¿Cómo deberías hacer esto? ¿De qué manera el tener un núcleo alterado influirá en los flujos de trabajo, como la actualización?

21
googletorp

Si debe hackear el núcleo, considere hacerlo de una manera que lo haga extensible para otros.

Añadir un gancho de acción

Nueve de cada diez veces, podría hacer lo que quisiera si solo hubiera una llamada do_action extra en un archivo específico. En ese caso, agregue la acción, documéntela y envíe un parche a través de Trac. Si hay una buena razón para su parche (es decir, no es el único que lo usaría), entonces probablemente pueda agregarlo al núcleo.

A continuación, cree un complemento personalizado (¡no tiene que liberarlo/distribuirlo!) Que se enganche a este nuevo gancho y realice la función que necesite.

Refactorizar un archivo de núcleo

Otras veces, es posible que necesite un código para comportarse de manera diferente. Pase una variable por referencia, por ejemplo, o devuelva un valor en lugar de repetirlo. Tómese un tiempo para sentarse y refactorizar el código para que haga lo que necesita hacer ... luego envíe un parche a través de Trac para que el resto de nosotros podamos beneficiarnos de su trabajo.


¿Ves un tema en desarrollo aquí? Hackear el núcleo no es necesariamente un no-no ... simplemente algo que la mayoría de los desarrolladores desalentará para usuarios nuevos o programadores novatos (si nos pregunta cómo hacer algo, ' Le sugeriré un complemento cada vez, incluso antes de considerar sugerirle que hackee el núcleo).

Hackear el núcleo es la forma en que WordPress se desarrolla y evoluciona, pero es peligroso para alguien que simplemente está aprendiendo PHP o sin experiencia en trabajar con WP archivos. Comience con un complemento antes de tocar el núcleo: si rompe un complemento, puede desinstalarlo rápidamente (eliminándolo mediante FTP si es necesario) ... pero si rompe el núcleo, pueden ocurrir cosas malas en su sitio y potencialmente en su sitio. base de datos también.

Pero si se encuentra en una situación en la que un hackeo del núcleo es inevitable, haga el cambio. Además, publique su cambio en una ubicación prominente (si su blog es altamente visible, eso podría ser suficiente ... pero sugiero Trac porque así es como se introducen los cambios de la comunidad en la próxima versión). Su cambio podría ser la bala mágica que podría solucionar los problemas en cientos de sitios diferentes ... así que contribuya de nuevo a la comunidad que lo ayudó a construir su sitio.

Si el cambio se compromete, su hack se convertirá en parte del núcleo y no tendrá que preocuparse por ello en el futuro. Si no es así, al menos tiene documentación detallada sobre cómo volver a implementar el hack después de actualizar WP en 3 meses.

21
EAMann

No hackear el núcleo.

Bueno, eso es porque es una sugerencia para el primer nivel, los usuarios inexpertos. Esos hacking core romperían su instalación, no pueden asegurarse de que sus cambios persisten en una actualización, etc.

Claro, hackear el núcleo!

Claro que puedes hackear el núcleo, por ejemplo, usando un sistema de administración de versiones como SVN. Le ayuda a mantener sus propios cambios en el código del núcleo en línea con las actualizaciones del proyecto. También ayuda a crear parches para Wordpress y enviarlos al proyecto.

El hacking core es un hecho que hace que Wordpress evolucione.

Consideraciones

Si no desea instalar un SVN completo y aún sabe qué (algunos) archivos ha cambiado, puede usar más herramientas de bajo nivel como Dif./Fusionar (para ganar: WinMerge ) o editores con capacidades de comparación (por ejemplo, Notepad ++ con Compare Plugin ). En Linux puede instalar fácilmente utilidades de línea de comandos que hacen lo mismo. El editor Geany viene con una integración Nice Shell por cierto. .

Prefiero Eclipse PDT para los trabajos difíciles. Pero eso no es para la edición rápida o hackear.

Así que diría, si estás usando las herramientas correctas y quieres tener cuidado, hackear el núcleo es el camino a seguir. Si está pirateando algo que queda en algún otro servidor de usuarios de Noob (sí, Wordpress es bastante popular), simplemente proporcione un complemento que pueda eliminarse fácilmente si se rompe algo.

3
hakre

Los temas son:

  1. Cada vez que realice una actualización del núcleo (por ejemplo, debido a una solución de seguridad, etc.), tendrá que actualizarlo manualmente, en lugar de ejecutar el actualizador automático.
    Si deseas hacer esto, entonces hazte la vida más fácil:
    • marque cada cambio con un marcador común (.e.g // PATCH START y // PATCH END)
    • use una herramienta como WinMerge para comparar la fuente existente con la nueva fuente, y copie los cambios cuando sea necesario.
    • tendrá que estar atento en caso de que el área de código que está copiando haya cambiado, y hacer los cambios apropiados a sus parches
    • tenga en cuenta que este es un trabajo 'interminable', que requiere un tiempo facturable, a menos que pueda volver a facturar a su cliente por ello.
  2. Puede causar problemas de incompatibilidad con los complementos que esperan que el núcleo funcione de cierta manera; esto requerirá pruebas adicionales

A veces, esto es 100% inevitable, pero casi siempre se me ocurre otra forma de lograr cosas, o de alterar las especificaciones debido al posible costo del tiempo dedicado a esto. Es solo una pesadilla de mantenimiento, y muchas personas buscan hackear el núcleo, en lugar de buscar la solución adecuada.

2
Dan Smart