Modificando los archivos centrales de WordPress

20

¿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é generalmente es una mala idea cambiar los archivos principales?

¿Considerar?

Sin embargo, a veces, 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 encuentre en una situación de este tipo, ¿de qué necesita estar consciente antes de seguir adelante y comenzar a hackear el núcleo?

¿Cómo?

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?

    
pregunta googletorp 09.09.2010 - 09:08

3 respuestas

19

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ías hacer lo que quisieras 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 enlaza a este nuevo gancho y realiza cualquier función que necesite hacer.

Refactoriza un archivo central

Otras veces, es posible que necesites un código para comportarte 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 desalientan enormemente para usuarios nuevos o programadores novatos (si nos pregunta cómo hacerlo) algo, sugeriremos un complemento cada vez antes incluso de considerar sugerirle que hackee el núcleo).

Hacking core es la forma en que WordPress se desarrolla y evoluciona, pero es peligroso para alguien que simplemente está aprendiendo PHP o sin experiencia en el trabajo con archivos WP. Comience con un complemento antes de tocar el núcleo: si rompe un complemento, puede desinstalarlo rápidamente (eliminando 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 destacada (si su blog es altamente visible, eso podría ser suficiente ... pero sugiero Trac porque Así es como se introducen los cambios en la comunidad en el próximo lanzamiento. Tu cambio podría ser la bala mágica que podría solucionar problemas en cientos de sitios diferentes ... así que contribuye de nuevo a la comunidad que te ayudó a construir tu sitio.

Si el cambio se compromete, su pirateo se convierte 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.

    
respondido por el EAMann 09.09.2010 - 16:27
2

Los problemas 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 haya cambiado el área del código que está copiando y hacer los cambios apropiados en 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 optan por un núcleo pirateado, en lugar de buscar la solución adecuada.

    
respondido por el Dan Smart 09.09.2010 - 10:20
2
  

No hackear el núcleo.

Bueno, eso es porque es una sugerencia para los usuarios de primer nivel, sin experiencia. El núcleo de piratería rompería su instalación, no pueden garantizar 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 núcleo de hacking 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 Diff / Merge (para ganar : WinMerge ) o editores con capacidades de comparación (por ejemplo, Notepad ++ with Compare Plugin ). En Linux puede instalar fácilmente utilidades de línea de comandos que hacen lo mismo. El editor de Geany viene con una buena integración de shell por cierto. .

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

Por lo tanto, diría que si estás usando las herramientas adecuadas 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.

    
respondido por el hakre 09.09.2010 - 11:13

Lea otras preguntas en las etiquetas