Aprende en este tutorial cómo crear una plantilla de bloques (block template) para un Custom Post Type (CPT) en WordPress.
Como ya has visto en varios tutoriales de esta web, hay muchas formas de sacarle el partido a las funcionalidades del editor de bloques.
Por ejemplo, el nuevo editor de WordPress te permite generar una plantilla de bloques predefinida y asociarla con un CPT.
De esta forma, si tú o tu cliente utilizáis siempre la misma estructura en un CPT, solo tienes que crear una plantilla en la que introducir información.
¿Mejor con un ejemplo?
Imagina que necesitas un Custom Post Type con contenido restringido que siempre sigue la siguiente estructura:
- Breve explicación.
- Bloque de HTML con el código de restricción (apertura).
- Vídeo de Vimeo.
- PDF.
- Bloque de HTML con el código de restricción (cierre).
- Breve despedida.
En este caso tienes la opción de crear una plantilla con los bloques necesarios para que cada vez que generes una nueva entrada solo te tengas que preocupar de añadir el contenido.
Suena bien ¿verdad?
Este sería el resultado:

Descubre cómo hacerlo a continuación.
Instrucciones para generar una plantilla de bloques específica para un CPT
Este tutorial asume que has creado el plugin de CPT tú mismo a través de código.
Si no es así y tienes algún problema adaptándolo a tu caso, déjame un comentario al final de la página e intentaré revisarlo.
1. Crea la plantilla
Dentro de la carpeta de tu plugin de CPT, genera una subcarpeta /lib/ y crea un fichero cpt-block-template.php.
Puedes sustituir cpt por el nombre de tu CPT.
A continuación, añade el siguiente código al archivo:
Para ver este código y los otros 1869 snippets de esta web,
identifícate o suscríbete aquí.
Como ves, la estructura de este bloque es bastante sencilla. Solo necesitas usar el hook register_post_type_args y una función que contenga los bloques como argumentos.
El código superior está pensando para el CPT «curso»; pero, por supuesto, te invito a modificarlo sustituyendo «curso» por el CPT que prefieras:
if ( 'curso' === $post_type) {
Para añadir nuevos bloques tienes que conocer el ‘nombre’ del mismo. Por ejemplo, para insertar el de párrafo es: ‘core/paragraph’.
Por desgracia, todavía no hay un listado con la nomenclatura de todos los bloques en la documentación de WordPress, aunque es relativamente sencillo buscar uno en concreto.
Como puedes observar en el código, tienes la posibilidad de agregar contenido en los bloques usando ‘content’ o introducir contenido de relleno escribiendo ‘placeholder’.
Y de nuevo te invito a modificar el texto de ambos según tus necesidades. Eso sí, ten en cuenta que no todos los bloques aceptan ambas opciones.
Estoy seguro de que con el tiempo ampliarán esta parte de la documentación y será más sencillo conocer las propiedades de cada bloque.
Nota: si quieres introducir un encabezado puedes hacerlo de la siguiente manera:
[
'core/heading', [
'level' => 2,
'content' => __( 'Título 2', 'genesis-sample' )
]
],
Es importante que el número lo pongas sin comillas (es decir, no uses 'level' => '2',
ya que a veces da problemas al renderizar el bloque.
Una vez hayas creado la plantilla a tu medida solo te queda un paso.
2. Llama al fichero de la plantilla
Para ello, introduce el siguiente snippet al final del plugin de CPT:
Para ver este código y los otros 1869 snippets de esta web,
identifícate o suscríbete aquí.
Con esta línea te aseguras de que la plantilla de bloques funcione cuando el tu plugin de CPT esté activo.
Conclusiones
Si tienes una estructura definida que se repite en las entradas de un CPT, crear una plantilla de bloques es una forma fantástica de ahorrar tiempo.
Más aún si lo haces para tu cliente, ya que facilita considerablemente el uso de la web.
Y ahora ya sabes cómo hacerlo de forma sencilla. Solo tienes que usar este código como punto de partida y ajustarlo a las necesidades del proyecto.
¿Te cuesta obtener el resultado que deseas? Cuéntame en qué plantilla estás trabajando para que cree un tutorial a medida.
Ventajas de ser suscriptor. 😉