17. The WP Functions Library (VI). Incluir plantillas con un plugin

Este artículo va a ser muy corto. De hecho, va a ser más larga la explicación de cómo he conseguido llegar a la solución del problema, que la explicación de dicha solución.

Recordemos que en el anterior artículo habíamos creado dos ficheros plantilla, tanto para los Custom Post Type (single-stmtwpfl.php) como para las taxonomías (taxonomy-clasificacion.php). Para facilitar el desarrollo de los mismos, lo he hecho directamente en el directorio del tema que tengo instalado. Sin embargo, cuando empaquetemos el plugin para su distribución, al instalarlo en cada sistema, dichas plantillas quedarán alojadas en el directorio del plugin. Por tanto, deberemos decirle a WordPress dónde se encuentran las plantillas para que las utilice cuando sea necesario.

 

La búsqueda de la solución

Para encontrar cómo hacerlo, estuve buscando por internet largamente, y acabé encontrando una página en la que indicaba cómo hacerlo: Add Page Templates to WordPress with a Plugin. Como el propio título indica, se trata de un Page Template, por lo que no resultaba ser concretamente lo que yo necesitaba.

Tuve, por tanto, que seguir buscando, y acabé encontrando este otro artículo: Plugin Templating within WordPress. Esto se acercaba bastante más, pero todavía no conseguía hacerlo funcionar.

 

 

El hallazgo de la solución

Finalmente, después de mucho buscar, se me ocurrió hacer la pregunta justa: “how to use the single_template hook”, lo que me envió directamente al Codex de WordPress.

En la página ‘Plugin API/Filter Reference/single template’, explica fácilmente cómo utilizar el gancho single_template.

 

La solución

El plugin, finalmente, queda así:

 

Explicación del código

Tiene dos partes, una para cada plantilla. Primero, la plantilla single-stmtwpfl.php:

Requiere poca explicación. Cuando se produce el gancho single_template, la función selector_plantilla_cpt() mira el id del post y, si el tipo es como nuestro Custom Post Type, ‘stmtwpfl’, devuelve la ubicación del fichero plantilla para que lo utilice.

Pensando que, si había un gancho single_template, también existiría el gancho taxonomy_template, efectivamente obtuve la segunda parte:

Aquí averiguamos si en la consulta general estamos trabajando con la taxonomía ‘clasificacion’, realizando, en caso afirmativo, lo mismo que antes.

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *