Problema en template woocommerce usándo register_block_template

|

|

,

Si estás utilizando el registro de bloques de Gutenberg y decides sustituir la plantilla de categoría con el slug archive-product_cat, te encontrarás con un problema: WordPress enviará un error porque no acepta slugs con guiones bajos. Este problema afecta no solo a esta plantilla en particular, sino a todos los slugs que contengan guiones bajos.

Código que falló antes de sobrescribir wp-includes/class-wp-block-templates-registry.php

register_block_template( 'woocommerce//taxonomy-product_cat', [ 'title' => 'Products by category', 'post_types' => [ 'product' ], 'content' => ZD_Helper::get_template_content( ZAFIRO_ADDONS_DIR_PATH . '/woocommerce/templates/content/category.php' ) ] );

Origen del problema

El problema proviene del núcleo de WordPress en la versión 6.7.1. Específicamente, está relacionado con la clase WP_Block_Templates_Registry, ubicada en el archivo wp-includes/class-wp-block-templates-registry.php.

En la línea 53 de este archivo, se encuentra la siguiente condición:

} elseif ( ! preg_match( '/^[a-z0-9-]+\/\/[a-z0-9-]+$/', $template_name ) ) {

Este patrón de validación no permite el uso de guiones bajos (_) en los slugs, lo que causa el fallo al intentar registrar plantillas con ese tipo de nomenclatura.

Solución temporal

Mientras WordPress corrige este comportamiento en una futura actualización, puedes solucionar el problema modificando temporalmente la línea 53 del archivo mencionado. Sustituye la línea por una que permita guiones bajos en los slugs:

} elseif ( ! preg_match( '/^[a-z0-9-_]+\/\/[a-z0-9-_]+$/', $template_name ) ) {

Esto permitirá que los slugs con guiones bajos funcionen correctamente en tu registro de plantillas.

Conclusión

El sistema de plantillas es una de las características más recientes y poderosas de WordPress, diseñado para integrarse con el editor de bloques Gutenberg. Sin embargo, trabajar con plantillas personalizadas requiere un conocimiento intermedio de WordPress, especialmente cuando surgen problemas relacionados con el núcleo.

Si encuentras dificultades al implementar estas funciones, como en el caso de los slugs con guiones bajos, considera revisar el código fuente y aplicar soluciones temporales hasta que WordPress implemente una corrección oficial.

Deja una respuesta

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

Abrir chat
Hola
¿En qué podemos ayudarte?