WordPress – Override templates de plugins

Pasos a seguir en WordPress para hacer un override de las templates de los plugins y evitar modificar el código del plugin en si.

Qué es Override

Una plantilla o plugin, al instalarlos en WordPress, ocupan unas carpetas concretas. Tú, como desarrollador manazas, puedes ir directamente a esas carpetas, y modificar los ficheros que conforman ese plugin o plantilla.

Pero, qué pasa cuando actualizas el plugin/plantilla en cuestión? Pues que empiezas a gritar y a volverte loco porque se machacan todos los ficheros que has modificados con las nuevas versiones…

WordPress, permite el Override. Eso es que duplicas los ficheros en cuestión en otra carpeta que tiene mas prioridad, y pasan por delante de las de la propia plantilla o plugin.

Plantilla o plugin

Para una plantilla en WordPress, que no vamos a tratar en este artículo, debes crear una plantilla child, y ahí ir duplicando los ficheros de la plantilla original. De ese modo, tú trabajas sobre la plantilla hija, y cuando se actualiza, lo hace la plantilla original sin afectr tus cambios.

En los pluginsm funciona un poco diferente y os lo muestro en el siguiente apartado.

Cómo hago Override de un plugin

Inicialmetente, tenemos la carpeta del plugin en si:

/wp-content/plugins/event-manager/

Dentro de esta carpeta habrá todo el contenido orginal del plugin, y será la carpeta que se modificará siempre que actualicemos el plugin.

Adentrémonos en lo que normalmente modificamos en los plugins, que es la parte visual o lo que son las plantillas de los plugins. La mayoría de plugins tienen la carpeta templates donde almacenan la parte visual de la web. En nuestro ejemplo:

/wp-content/plugins/event-manager/templates

Pues bien. Queremos cambiar un formulario que… bla bla bla… y que está en el fichero:

/wp-content/plugins/event-manager/templates/form-advanced.php

Pues ahora vamos a hacer el Override.

Dentro de la carpeta /wp-content/ creamos, si no lo está, la carpeta /plugin-templates/

/wp-content/plugin-templates

Luego, dentro ponemos duplicamos la carpeta del plugin, pero sin el templares !!! Quedaría tal que así:

/wp-content/plugin-templates/event-manager/form-advanced.php

Y si todo ha ido bien, WordPress priorizará el visionado de este fichero, que el del plugin en si.

Pues no me funciona

El problema seguro que es la trayectoria que crees dentro /plugin-templates/.

Además, no me sorprendería que algunos plugins no lo coja bien y deba ponerse en otras carpetas.

Como siempre, lo mejor, es leer la documentación o enviar un ticket al soporte para que te respondan con un artículo de un foro de hace 10 años…

Espero que te sea de utilidad para crear en WordPress un override de las templates de plugins, y no estés diciendo ahora que no te ha servidor de nada y tengas que seguir navegando por Internet.

Más información