En la era Gutenberg, el proceso de diseño no está estrictamente ligado a los temas de WordPress. Desde el principio, el CMS proporciona a los usuarios todas las herramientas de diseño que necesitan para construir un excelente sitio web y el tema pretende ser algo que añade aún más herramientas de construcción y diseño.

Las plantillas de bloques son una característica que aumenta aún más las posibilidades de creación de sitios. Según el Manual del Editor de Bloques:

Una plantilla de bloque se define como una lista de elementos de bloque. Estos bloques pueden tener atributos predefinidos, contenido de marcador de posición y ser estáticos o dinámicos. Las plantillas de bloques permiten especificar un estado inicial predeterminado para una sesión del editor.

En otras palabras, las plantillas de bloques son colecciones preconstruidas de bloques que se utilizan para establecer un estado predeterminado de forma dinámica en el cliente.

👉 Las plantillas de Bloques son diferentes de los archivos de Plantilla.

Los archivos de plantilla son archivos PHP como index.php, page.php y single.php, y funcionan de la misma manera tanto con los temas clásicos como con los de bloque, según la jerarquía de plantillas de WordPress. En los temas clásicos, estos archivos están escritos en PHP y HTML. En los temas de bloques, están formados íntegramente por bloques.

👉 Las plantillas de Bloques son diferentes de los patrones de Bloques.

Los patrones de bloques deben añadirse manualmente a tus páginas, mientras que las plantillas de bloques proporcionan automáticamente el diseño inicial y los valores predeterminados cuando tú o los miembros de tu equipo creáis una nueva entrada.

También puedes vincular plantillas de bloques específicas a tus tipos de entrada personalizados y bloquear algunos bloques o funciones para obligar a los usuarios a utilizar tus valores predeterminados o evitar errores.

Tienes un par de formas de crear plantillas de bloques. Puedes utilizar la API de bloques para declarar un array de tipos de bloque mediante PHP, o puedes crear un tipo de bloque personalizado utilizando el componente InnerBlocks.

¡Vamos a sumergirnos!

Cómo Crear una Plantilla de Bloques con PHP

Si eres un desarrollador de la vieja escuela, puedes definir una plantilla de bloque personalizada utilizando un plugin o el archivo functions.php de tu tema. Si te decides por un plugin, inicia tu editor de código favorito, crea un nuevo archivo PHP y añade el siguiente código:

<?php
/*
 * Plugin Name:       My Block Templates
 * Plugin URI:        https://example.com/
 * Description:       An example plugin
 * Version:           1.0
 * Requires at least: 5.5
 * Requires PHP:      8.0
 * Author:            Your name
 * Author URI:        https://author.example.com/
 * License:           GPL v2 or later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Update URI:        https://example.com/my-plugin/
 */

function myplugin_register_my_block_template() {
	$post_type_object = get_post_type_object( 'post' );
	$post_type_object->template = array(
		array( 'core/image' ),
		array( 'core/heading' ),
		array( 'core/paragraph' )
	);
}
add_action( 'init', 'myplugin_register_my_block_template' );

En el código anterior get_post_type_object recupera un tipo de entrada por su nombre.

Guarda tu archivo en la carpeta wp-content/plugins, ve a la pantalla Plugins de tu panel de control de WordPress y activa el plugin Mis Plantillas de Bloque.

Ahora, cuando crees una nueva entrada, el editor lanzará automáticamente tu plantilla de bloque con un bloque de imagen, un encabezado y un párrafo.

Una plantilla de bloques cargada automáticamente en el editor de entradas
Una plantilla de bloques cargada automáticamente en el editor de entradas

También puedes añadir un array de ajustes para cada bloque y también crear estructuras anidadas de bloques. La siguiente función construye una plantilla de bloques más avanzada con bloques internos y ajustes:

function myplugin_register_my_block_template() {

	$block_template = array(
		array( 'core/image' ),
		array( 'core/heading', array(
			'placeholder'	=> 'Add H2...',
			'level'			=> 2
		) ),
		array( 'core/paragraph', array(
			'placeholder'	=> 'Add paragraph...'
			
		) ),
		array( 'core/columns', 
			array(), 
			array( 
				array( 'core/column',
					array(),
					array(
						array( 'core/image' )
					)
				), 
				array( 'core/column',
					array(),
					array(
						array( 'core/heading', array(
							'placeholder'	=> 'Add H3...',
							'level'			=> 3
						) ),
						array( 'core/paragraph', array(
							'placeholder'	=> 'Add paragraph...'
						) )
					) 
				)
			) 
		)
	);
	$post_type_object = get_post_type_object( 'post' );
	$post_type_object->template = $block_template;
}
add_action( 'init', 'myplugin_register_my_block_template' );

Puedes ver el resultado del código anterior en la siguiente imagen:

Una plantilla de bloques más avanzada
Una plantilla de bloques más avanzada

Hasta ahora, sólo hemos utilizado bloques básicos. Pero también puedes incluir bloques personalizados o patrones de bloques en tus plantillas de bloques, como se muestra en el siguiente ejemplo:

function myplugin_register_my_block_template() {
	$post_type_object = get_post_type_object( 'page' );
	$post_type_object->template = array(
		array( 'core/pattern', array(
			'slug' => 'my-plugin/my-block-pattern'
		) ) 
	);
}
add_action( 'init', 'myplugin_register_my_block_template' );

No hay mucha diferencia en caso de que decidas crear una plantilla de bloque predeterminada para un tipo de entrada personalizado ya registrado. Simplemente cambia el tipo de entrada de get_post_type_object por el nombre de tu tipo de entrada personalizado, como se muestra en el siguiente ejemplo:

<?php
function myplugin_register_my_block_template() {
	$post_type_object = get_post_type_object( 'book' );
	$post_type_object->template = array(
		array( 'core/image' ),
		array( 'core/heading' ),
		array( 'core/paragraph' )
	);
}
add_action( 'init', 'myplugin_register_my_block_template' );

Ahora que ya sabes cómo crear plantillas de bloque, podemos avanzar y explorar más casos de uso. Profundicemos un poco más.

Plantillas de Bloque con Tipos de Entrada Personalizados

Como hemos mencionado antes, puedes adjuntar una plantilla de bloque a un tipo de entrada personalizado. Puedes hacerlo después de que tu tipo de entrada personalizado ya haya sido registrado, pero puede que prefieras definir una plantilla de bloque al registrar el tipo de entrada personalizado.

En este caso, puedes utilizar los argumentos template y template_lock de la función register_post_type:

function myplugin_register_book_post_type() {
	$args = array(
		'label' => esc_html__( 'Books' ),
		'labels' => array(
			'name' => esc_html__( 'Books' ),
			'singular_name' => esc_html__( 'Book' ),
		),
		'public' => true,
		'publicly_queryable' => true,
		'show_ui' => true,
		'show_in_rest' => true,
		'rest_namespace' => 'wp/v2',
		'has_archive' => true,
		'show_in_menu' => true,
		'show_in_nav_menus' => true,
		'supports' => array( 'title', 'editor', 'thumbnail' ),
		'template' => array(
			array( 'core/paragraph', array(
				'placeholder'	=> 'Add paragraph...'
			) ),
			array( 'core/columns', 
				array(), 
				array( 
					array( 'core/column',
						array(),
						array(
							array( 'core/image' )
						)
					), 
					array( 'core/column',
						array(),
						array(
							array( 'core/heading', array(
								'placeholder'	=> 'Add H3...',
								'level'			=> 3
							) ),
							array( 'core/paragraph', array(
								'placeholder'	=> 'Add paragraph...'
							) )
						) 
					)
				)
			)
		)
	);
	register_post_type( 'book', $args );
}
add_action( 'init', 'myplugin_register_book_post_type' );

Y ya está. La imagen siguiente muestra la plantilla de bloque en la interfaz del editor para un tipo de entrada personalizado Libro.

Una plantilla de bloque para un tipo de entrada personalizado
Una plantilla de bloque para un tipo de entrada personalizado

Cuando hayas terminado con el diseño, es posible que quieras jugar con la configuración de bloques para ajustar el comportamiento y la apariencia de tu plantilla de bloques.

Ajustar la Plantilla de Bloque con Atributos de Bloque

Hemos definido una plantilla de bloques como una lista de bloques. Cada elemento de la lista debe ser un array que contenga el nombre del bloque y un array de atributos opcionales. Con los arrays anidados, puede que quieras añadir un tercer array para los bloques hijos.

Una plantilla con un bloque Columnas puede representarse como sigue:

$template = array( 'core/columns', 
	// attributes
	array(), 
	// nested blocks
	array(
		array( 'core/column' ),
		array( 'core/column' ) 
	) 
);

Como ya se ha mencionado, el segundo array de la lista es un array opcional de atributos de bloque. Estos atributos te permiten personalizar la apariencia de tu plantilla para que tú o tus usuarios podáis centraros en el contenido de la entrada sin preocuparos de la disposición y el diseño de la página.

Para empezar, puedes utilizar el editor de bloques para crear una estructura de bloques que puedas utilizar como referencia para tu plantilla.

Un diseño de bloques en el editor de bloques
Un diseño de bloques en el editor de bloques

Añade tus bloques, personaliza la disposición y los estilos, luego pasa al editor de código y busca delimitadores de bloque.

El delimitador de bloque de un bloque Columnas
El delimitador de bloque de un bloque Columnas

Los delimitadores de bloque almacenan los ajustes y estilos del bloque en pares clave/valor. Puedes simplemente copiar y pegar claves y valores del marcado de bloque para rellenar tu array de atributos:

$template = array( 'core/columns', 
	array(
		'verticalAlignment'	=> 'center',
		'align'				=> 'wide',
		'style'				=> array( 
			'border'	=> array(
				'width'	=> '2px',
				'radius'	=> array(
					'topLeft'		=> '12px', 
					'topRight'		=> '12px', 
					'bottomLeft'	=> '12px', 
					'bottomRight'	=> '12px'
				)
			)
		),
		'backgroundColor' => 'tertiary'
	),
	array(
		array( 'core/column' ),
		array( 'core/column' ) 
	) 
);

Repite el proceso para cada bloque de la plantilla y ya está.

$template = array(
	array( 'core/paragraph', array(
		'placeholder'	=> 'Add paragraph...'
	) ),
	array( 'core/columns', 
		array(
			'verticalAlignment'	=> 'center',
			'align'				=> 'wide',
			'style'				=> array( 
				'border'	=> array(
					'width'		=> '2px',
					'radius'	=> array(
						'topLeft'		=> '12px', 
						'topRight'		=> '12px', 
						'bottomLeft'	=> '12px', 
						'bottomRight'	=> '12px'
					)
				)
			),
			'backgroundColor' => 'tertiary',
			'lock' => array(
				'remove'	=> true,
				'move'		=> true
			)
		), 
		array( 
			array( 'core/column',
				array( 'verticalAlignment'	=> 'center' ),
				array(
					array( 'core/image', 
						array(
							'style'	=> array( 'border' => array( 'radius' => '8px' ) ) 
						) 
					)
				)
			), 
			array( 'core/column',
				array( 'verticalAlignment'	=> 'center' ),
				array(
					array( 'core/heading', array(
						'placeholder'	=> 'Add H3...',
						'level'			=> 3
					) ),
					array( 'core/paragraph', array(
						'placeholder'	=> 'Add paragraph...'
					) )
				) 
			)
		)
	)
);

Bloquear Bloques

Puedes bloquear bloques específicos o todos los bloques incluidos en tu plantilla utilizando la propiedad template_lock de la página $post_type_object.

Bloquear plantillas puede ser muy útil cuando tienes un blog con varios autores y quieres evitar que todos o determinados usuarios cambien el diseño de tu plantilla de bloques.

En el siguiente ejemplo, estamos bloqueando todos los bloques de la plantilla de bloques:

function myplugin_register_my_block_template() {
	$post_type_object = get_post_type_object( 'post' );
	$post_type_object->template = array(
		array( 'core/image' ),
		array( 'core/heading' ),
		array( 'core/paragraph' )
	);
	$post_type_object->template_lock = 'all';
}
add_action( 'init', 'myplugin_register_my_block_template' );

Los bloques bloqueados muestran un icono de candado en la barra de herramientas de bloques y en la vista de lista:

Un bloque de encabezamiento bloqueado
Un bloque de encabezamiento bloqueado

Los usuarios pueden desbloquear bloques desde el menú Opciones disponible en la barra de herramientas de bloques.

Desbloqueando un bloque
Desbloqueando un bloque

Al hacer clic en Desbloquear, una ventana emergente modal te permite activar/desactivar el movimiento, impedir la eliminación, o ambas cosas:

Opciones de bloqueo
Opciones de bloqueo

template_lock puede tomar uno de los siguientes valores:

  • all — Impide a los usuarios añadir nuevos bloques, mover y eliminar bloques existentes
  • insert — Impide a los usuarios añadir nuevos bloques y eliminar bloques existentes
  • contentOnly — Los usuarios sólo pueden editar el contenido de los bloques incluidos en la plantilla. Ten en cuenta que contentOnly sólo puede utilizarse a nivel de patrón o plantilla y debe gestionarse con código. (Ver también Bloquear APIs).
Configuración de template_lock para evitar que se eliminen bloques de la plantilla
Configuración de template_lock para evitar que se eliminen bloques de la plantilla

Si quieres bloquear bloques específicos, puedes utilizar el atributo lock en cada bloque:

function myplugin_register_my_block_template() {
	$post_type_object = get_post_type_object( 'post' );
	$post_type_object->template = array(
		array( 'core/image' ),
		array( 'core/heading' ),
		array( 'core/paragraph', array(
			'lock' => array(
				'remove'	=> true,
				'move'		=> true
			)
		) )
	);
}
add_action( 'init', 'myplugin_register_my_block_template' );

El atributo lock puede tomar uno de los siguientes valores:

  • remove: Impide que los usuarios eliminen un bloque.
  • move: Evita que los usuarios muevan un bloque.

También puedes utilizar lock junto con template_lock para ajustar el comportamiento de los bloques incluidos en tu plantilla de bloques. En el siguiente ejemplo, estamos bloqueando todos los bloques excepto el encabezado:

function myplugin_register_my_block_template() {
	$post_type_object = get_post_type_object( 'post' );
	$post_type_object->template = array(
		array( 'core/image' ),
		array( 'core/heading', array(
			'lock' => array(
				'remove'	=> false,
				'move'		=> false
			) 
		) ),
		array( 'core/paragraph' )
	);
	$post_type_object->template_lock = 'all';
}
add_action( 'init', 'myplugin_register_my_block_template' );

La imagen siguiente muestra la plantilla de bloques con los bloques bloqueados y desbloqueados:

Una plantilla de bloques con bloques bloqueados y desbloqueados
Una plantilla de bloques con bloques bloqueados y desbloqueados

Los desarrolladores de bloques también pueden utilizar el atributo lock en la definición del bloque en el nivel attributes (consulta también Bloqueo individual de bloques).

Evitar que los Usuarios Desbloqueen Bloques

Si has probado el código comentado hasta ahora en el artículo, te habrás dado cuenta de que puedes desbloquear los bloques incluidos en tu plantilla (o cualquier otro bloque) desde la interfaz del editor. Por defecto, todos los usuarios con acceso de edición pueden bloquear o desbloquear bloques, y al hacerlo se saltan la configuración de tu plantilla.

Puedes controlar si los bloques pueden bloquearse o desbloquearse utilizando el filtro block_editor_settings_all.

El filtro enviará cualquier configuración al editor inicializado, lo que significa que cualquier configuración del editor que se utilice para configurar el editor en la inicialización puede ser filtrada por un plugin PHP WordPress antes de ser enviada.

La función callback que utilizarás con este filtro toma dos parámetros:

  • $settings: Un array de ajustes del editor.
  • $context: Una instancia de la clase WP_Block_Editor_Context, un objeto que contiene información sobre el editor de bloques que se está representando.

Lo que tienes que hacer es filtrar $settings['canLockBlocks'] poniéndolo a true o false como se muestra en el siguiente ejemplo:

add_filter( 'block_editor_settings_all', 
	function( $settings, $context ) {
		if ( $context->post && 'book' === $context->post->post_type ) {
			$settings['canLockBlocks'] = false;
		}
		return $settings;
	}, 10, 2
);

Puedes excluir determinados roles de usuario del bloqueo/desbloqueo de bloques ejecutando una comprobación condicional de las actuales capacidades del usuario.

En el siguiente ejemplo, estamos comprobando si el usuario actual puede editar los mensajes de otros (en otras palabras, si el rol de usuario actual es Editor o superior):

add_filter( 'block_editor_settings_all', 
	function( $settings, $context ) {
		if ( $context->post && 'book' === $context->post->post_type ) {
			$settings['canLockBlocks'] = current_user_can( 'edit_others_posts' );
		}
		return $settings;
	}, 10, 2
);

Las siguientes imágenes comparan el estado inicial del editor para un Admin y un Autor. En primer lugar, Admin:

Estado inicial del editor para un usuario Admin
Estado inicial del editor para un usuario Admin

Ahora, Autor:

Estado inicial del editor para un Autor
Estado inicial del editor para un Autor

Y puedes comprobar cualquier condición del usuario actual. En el siguiente ejemplo, estamos impidiendo que un usuario concreto bloquee/desbloquee bloques:

add_filter( 'block_editor_settings_all', 
	function( $settings, $context ) {
		$user = wp_get_current_user();
		if ( in_array( $user->user_email, [ '[email protected]' ], true ) ) {
			$settings['canLockBlocks'] = false;
		}
		return $settings;
	}, 10, 2
);

Puedes combinar más condiciones para tener un control granular sobre quién puede bloquear/desbloquear bloques en tu plantilla y quién no. Ése es un aspecto de lo que se denomina Experiencia Curada.

Pero espera. ¿Has intentado editar el contenido de tu entrada utilizando el editor de código? Bueno, puede que te sorprenda ver que los usuarios a los que no se les permite desbloquear bloques desde la interfaz de usuario aún pueden cambiar el contenido desde el editor de código.

Deshabilitar el Editor de Código para Roles de Usuario Específicos

Por defecto, todos los usuarios que pueden editar contenido pueden acceder al editor de código. Esto podría anular tu configuración de bloqueo y algunos usuarios podrían arruinar o borrar el diseño de tu plantilla.

También puedes utilizar block_editor_settings_all para filtrar la configuración codeEditingEnabled para evitar que determinados roles de usuario accedan al editor de código. Este es el código:

add_filter( 'block_editor_settings_all', 
	function( $settings, $context ) {
		if ( $context->post && 'book' === $context->post->post_type ) {
			$settings['canLockBlocks'] = current_user_can( 'edit_others_posts' );
			$settings['codeEditingEnabled'] = current_user_can( 'edit_others_posts' );
		}
		return $settings;
	}, 10, 2
);

Con este código, los usuarios que no tengan la función edit_others_posts no podrán acceder al editor de código. La siguiente imagen muestra la barra de herramientas Opciones para un Autor.

La barra de herramientas Opciones para un rol de usuario sin acceso al editor de código
La barra de herramientas Opciones para un rol de usuario sin acceso al editor de código

Esto es lo que necesitas saber para construir plantillas de bloques mediante PHP. Ahora bien, si eres un desarrollador de bloques de Gutenberg y te encanta trabajar con JavaScript, puede que prefieras optar por un enfoque diferente.

Cómo Construir una Plantilla Utilizando JavaScript

Añadir una plantilla de bloque a una entrada funciona de forma diferente si decides utilizar JavaScript. Todavía puedes construir una plantilla, pero necesitas crear un bloque personalizado y utilizar el componente InnerBlocks, tal y como se explica en nuestra guía de desarrollo de bloques de Gutenberg.

InnerBlocks exporta un par de componentes que pueden utilizarse en implementaciones de bloques para habilitar el contenido de bloques anidados. — Fuente: InnerBlocks

¿Cómo funciona?

Puedes utilizar InnerBlocks en tus bloques personalizados del mismo modo que cualquier otro componente de Gutenberg.

Primero tienes que incluirlo desde un paquete junto con otras dependencias:

import { registerBlockType } from '@wordpress/blocks';
import { useBlockProps, InnerBlocks } from '@wordpress/block-editor';

A continuación, definirás las propiedades de InnerBlocks. En el siguiente ejemplo, declararemos una constante TEMPLATE que luego utilizaremos para establecer el valor de la propiedad template del elemento InnerBlocks:

const TEMPLATE = [
	[ 'core/paragraph', { 'placeholder': 'Add paragraph...' } ],
	[ 'core/columns', { verticalAlignment: 'center' }, 
		[
			[ 
				'core/column', 
				{ templateLock: 'all' }, 
				[
					[ 'core/image' ]
				]
			],
			[ 
				'core/column', 
				{ templateLock: 'all' }, 
				[
					[ 
						'core/heading', 
						{'placeholder': 'Add H3...', 'level': 3}
					], 
					[ 
						'core/paragraph', 
						{'placeholder': 'Add paragraph...'} 
					]
				], 
			]
		]
	]
];
registerBlockType( metadata.name, {
	title: 'My Template',
	category: 'widgets',
	edit: ( props ) => {
		return(
			<div>
				<InnerBlocks
					template={ TEMPLATE }
					templateLock="insert"
				/>
			</div>
		)
	},
	save() {
		const blockProps = useBlockProps.save();
		return(
			<div { ...blockProps }>
				<InnerBlocks.Content />
			</div>
		)
	}
} );

Este código es bastante sencillo. Observa que hemos utilizado el atributo templateLock dos veces, primero a nivel de bloque y luego dentro del elemento InnerBlocks. Para ver la lista completa de accesorios disponibles, consulta la referenciaInnerBlocks y el Manual del Editor de Bloques.

Ahora pruébalo tú mismo.

Primero, crea una instalación local de WordPress utilizando DevKinsta o cualquier otro entorno de desarrollo local.

A continuación, inicia tu herramienta de línea de comandos, navega hasta tu carpeta de plugins y ejecuta el siguiente comando:

npx @wordpress/create-block template-block

Puedes cambiar el nombre del bloque por el que quieras. Si prefieres controlar todos y cada uno de los aspectos de tu bloque de inicio, sólo tienes que seguir las instrucciones proporcionadas en nuestra guía definitiva para el desarrollo de bloques.

Una vez completada la instalación, ejecuta los siguientes comandos:

cd template-block
npm start

Abre tu panel de administración de WordPress y ve a la pantalla de plugins. Busca y activa tu plugin Bloque de Plantillas.

En tu editor de código favorito, abre el archivo index.js que encontrarás en la carpeta src. Copia y pega el código anterior, guarda tu index.js y, de nuevo en el panel de control de WordPress, crea una nueva entrada o página.

Abre el insertador de bloques y desplázate hasta la sección Widgets. Allí deberías encontrar tu bloque personalizado.

Un bloque personalizado en el insertador de bloques
Un bloque personalizado en el insertador de bloques

Añádelo a la entrada, personaliza el contenido y guarda la entrada.

Vista de lista de una plantilla personalizada
Vista de lista de una plantilla personalizada

Si cambias al editor de código, verás el siguiente marcado:

<!-- wp:create-block/template-block -->
<div class="wp-block-create-block-template-block"><!-- wp:paragraph {"placeholder":"Add paragraph..."} -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:columns {"verticalAlignment":"center"} -->
<div class="wp-block-columns are-vertically-aligned-center"><!-- wp:column {"templateLock":"all"} -->
<div class="wp-block-column"><!-- wp:image -->
<figure class="wp-block-image"><img alt=""/></figure>
<!-- /wp:image --></div>
<!-- /wp:column -->

<!-- wp:column {"templateLock":"all"} -->
<div class="wp-block-column"><!-- wp:heading {"level":3,"placeholder":"Add H3..."} -->
<h3 class="wp-block-heading"></h3>
<!-- /wp:heading -->

<!-- wp:paragraph {"placeholder":"Add paragraph..."} -->
<p></p>
<!-- /wp:paragraph --></div>
<!-- /wp:column --></div>
<!-- /wp:columns --></div>
<!-- /wp:create-block/template-block -->

Ahora previsualiza el resultado en tu navegador favorito. Si necesitas mejorar el aspecto de tu bloque, sólo tienes que cambiar los estilos en tu archivo style.scss.

Cuando estés satisfecho con tus personalizaciones, detén el proceso y ejecuta npm run build. Todos los archivos de tu proyecto se comprimirán y estarán disponibles para producción en la nueva carpeta build.

Es fácil y potente, ¿verdad?

Ahora puedes crear plantillas avanzadas de bloques que puedes incluir en tu contenido con sólo unos clics.

Resumen

Añadir una plantilla de bloques a tus entradas o tipos de entradas personalizados puede acelerar y mejorar drásticamente la experiencia de creación y edición en tu sitio web WordPress. Las plantillas de bloques son especialmente útiles en sitios web multiusuario, donde varios usuarios pueden crear contenido y necesitas que se adhieran al mismo formato.

Esto también te permite crear diseños uniformes sin tener que añadir manualmente un patrón de bloques cada vez que crees una nueva entrada. Piensa en un sitio web de reseñas o recetas, donde cada página debe respetar la misma estructura.

Combinando los conocimientos que habrás adquirido en la creación de bloques personalizados estáticos o dinámicos, patrones de bloques y plantillas de bloques, podrás identificar siempre la solución más eficiente y eficaz para crear cualquier tipo de sitio web WordPress.

Ahora depende de ti. ¿Has explorado ya las plantillas de bloques? ¿Para qué caso de uso te parecen más adecuadas? Por favor, comparte tu experiencia en los comentarios a continuación.

Carlo Daniele Kinsta

Carlo es un diseñador y desarrollador de front-end freelance. Cuando escribe artículos y tutoriales, Carlo se ocupa principalmente de los estándares web, pero cuando juega con sitios web, su mejor compañero de trabajo es WordPress.