A pesar de no haber una forma oficial para crear plugins hijos, este tema ha sido discutido por la comunidad de WordPress durante los últimos años.
Ian publicó una entrada resaltando la forma correcta para personalizar plugins. La primera sugerencia que ofreció es ponerse en contacto con el autor del plugin y hacerle saber qué cambios quieres ver.
Si eso no funciona, el siguiente paso es extender el plugin sin modificar su esencia. La forma más fácil de lograr esto es creando un plugin funcional que trabaje junto a este. Puedes mejorar el método utilizando el plugin Dependencies para controlar cuándo se activa el plugin funcional. Plugin Dependencies te permite especificar si un plugin padre ha sido desactivado, además de desactivar el plugin dependiente de este.
Este plugin le permite a plugins regulares especificar otros plugins de los cuales dependen.
Ejemplo:
/* Plugin Name: BuddyPress Debug Depends: BuddyPress, Debug bar */
Lo que esto hace es:
- Deshabilita la activación de BuddyPress Debug hasta que ambos BuddyPress y Debug Bar hayan sido activados.
- Cuando BuddyPress o Debug Bar se desactivan, BuddyPress Debug también será desactivado.
Los Hooks son una forma para que una parte de código interactúe y modifique otra parta de código. Si el plugin que quieres modificar ofrece hooks, los puedes usar a tu favor para extender la funcionalidad del plugin. Según Ian, si el desarrollador agregó hooks, solo necesitas escribir un plugin aparte que corra al lado del plugin que estas personalizando y registres retrollamadas para los hooks personalizados que el plugin provee.
Code Snippets por Shea Bunge es una forma muy fácil de manejar fragmentos de código para extender plugins. Code Snippets es muy interesante, ya que agrega una interfaz gráfica de usuario para crear y manejar fragmentos de código. Los fragmentos de código son ejecutados como si estuviesen ubicados dentro el tema del archivo functions.php. Este beneficio adicional eleva las posibilidades de functions.php agregando centenas de líneas de código extra. Utilizando Code Snippets para extender plugins en lugar de functions.php previene que los cambios se pierdan cuando un usuario cambia de temas.
Resumiendo
La importancia de nunca editar archivos núcleo de WordPress debe de ser obligada para plugins y temas. La meta es extender o eliminar funcionalidad sin perder estos cambios después de una actualización. No es bien visto poner fragmentos de código dentro de un tema del archivo functions.php. En lugar de esto, utiliza un plugin de funcionalidad o utiliza el plugin Code Snippets. Los autores de plugins son alentados a agregar hooks donde pueda crear el mayor impacto. Si no estás seguro de cómo agregar hooks personalizados a tu plugin, hay una explicación muy buena dentro del manual de desarrollador de plugins.
Deja una respuesta