
El pasado 12 de febrero se liberó la versión final de GenerateBlocks 2.0 (GB) después de un largo ciclo que se inició el 24 de noviembre de 2024 con su primera versión alpha.1, que estuve trasteando desde el principio.
La versión 2.0 es de esas que esconde grandes mejoras "debajo del capó" para conservar los sitios bien optimizados.
La nueva versión permite mantener los bloques versión 1.0 o incluso volver a ellos si un día lo necesitas cambiando la variable desde "Todos los ajustes" en /wp-admin/options.php, para ello basta establecer la opción gb_use_v1_blocks en 1.
Si bien aún andan ajustando el rendimiento final (para lo que pronto sacarán otra actualización) y la usabilidad sigue siendo su asignatura pendiente, con una curva de aprendizaje demasiado empinada ya que no parecen haber encontrado aún el equilibrio "visual" de las configuraciones de los bloques, esto se compensa con un soporte intachable y una documentación muy completa.
Este plugin de bloques, creado por Tom Usborne, es muy joven. Tiene poco más de dos años de vida. Su versión 1.0 se lanzó el 30 de agosto de 2022.
Esto no ha impedido que, junto a GeneratePress (GP), se haya convertido en el combo ideal para maquear y/o construir parcial o casi totalmente el diseño de tu WordPress, ya que ofrece un código límpio, ligero y rápido. A día de hoy sigue siendo el elegido por una abultada cantidad de usuarios de WordPress, desde "nicheros" a blogueros de andar por casa.
Hay que insistir en que GenerateBlocks no es un constructor, como Elementor u otros de los llamados "Site Builders" aunque bien puede usarse como tal, es un planteamiento diferente que no tiene nada que ver con el tradicional "arrastrar y soltar". Se trata de un plugin de bloques.
Si hay algo que es de justicia volver a reseñar y aplaudir de GB+GP es su soporte. Han entendido muy bien a sus usuarios y en la atención han dado en el clavo. Desde su foro de soporte puedes solucionar casi cualquier cosa.
Te echan una mano incluso con asuntos que no siempre están relacionados con errores o dudas sobre el uso, también ayudan a la hora de construir o rediseñar cosas concretas. Siempre con un trato amable y resolutivo. Y lo mejor es que todas esas consultas, discusiones y soluciones pueden ser consultadas por cualquier persona, aunque no use sus versiones de pago.
Sólo por esto merece la pena cada dólar que se paga por su plantilla y plugin de bloques.
Dejo por aquí, a modo de recordatorio y "reconsulta" para el futuro, un ejemplo de solución (y no es la primera) de una de estas consultas en su foro de soporte que me permitió traducir unas cadenas de forma dinámica. Eran las últimas que faltaban por traducir y se resistían.
Muy probablemente, para alguien con conocimientos de programación sea como rascarse la nariz, pero para usuarios de "trasteo" avanzado con conocimientos básicos, como yo, es un auténtico regalo.
Traducir textos de un bloque "Text" de GenerateBlocks usando Polylang
El pluging Polylang permite registrar cadenas para añadir sus correspondientes traducciones allá donde quieras. Para ello basta añadir las cadenas tal que así al functions.php del theme:
pll_register_string('Publicado:', 'Published:');
pll_register_string('Actualizado:', 'Updated:');Así, aparecerán ya para traducir en un grupo llamado Polylang en Idiomas/traducciones:

Pero con esto no basta, ahora hay que invocar a cada una de esas traducciones con un código PHP para poder mostrarlas.
La misión es traducir dinámicamente a cada idioma las cadenas Publicado: y Actualizado: que añadí en su momento en un Elemento de GP con un bloque de "Text" de GB 2.0 (Antes llamado "Headline").
Estructura del bloque Text de GB
Publicado: {{post_date}} | Actualizado: {{post_date type:modified}} |
El problema es que no encontraba la forma de añadir las llamadas PHP de Polylang para que reemplazaran a esas dos palabras en función del idioma en el que se mostrara la página:
<?php echo pll__('Published:'); ?>
<?php echo pll__('Updated:'); ?>
El bloque de GB no ejecuta código PHP y tampoco existía la posibilidad de meterlo con un shortcode. Llegado este punto me declaré incapaz de encontrar una solución y decidí consultarlo en el foro de soporte.
Y después de unos cuantos mensajes llegó la solución.
1. Se añade una clase CSS al bloque Text". Para este ejemplo se usa: my-post-dates

2- Se añade este filtro en el functions.php de la plantilla:
add_filter( 'render_block', function( $block_content, $block ) {
    if (  ! empty( $block['attrs']['className'] ) && 'my-post-dates' ===  $block['attrs']['className'] )  {
		
             $published = pll__('Published:');	
             $updated = pll__('Updated:');
            // Ensure these values are translated, fallback to default if empty
             $translated_published = !empty($published) ? $published : 'Published:';
             $translated_updated = !empty($updated) ? $updated : 'Updated:';
	     $block_content = str_replace('Publicado', $published, $block_content);
             $block_content = str_replace('Actualizado', $updated, $block_content);
     }
      return $block_content;
}, 10, 2 );Y eso es todo. Ahora, esas dos palabras se mostrarán en el idioma que se seleccione de los que estés usando.
Esta entrada contiene dos enlaces de afiliado.










