Descubre en este tutorial cómo solucionar el error que provoca que los shortcodes no se ejecuten en plantillas de bloques en WordPress 6.2.1.
¿Has actualizado a WordPress 6.2.1 y de repente algunas páginas no se visualizan correctamente?
Pues no te ocurre solo a ti, es un error conocido y que confío en que solucionen en la siguiente versión (probablemente 6.2.2), pero para eso pueden faltar unas cuantas semanas aún.
El bug afecta a los temas que utilizan plantillas de bloques y se debe a que la nueva versión (6.2.1) impide que se ejecuten los shortcodes dentro de las mismas. El cambio venía a solucionar una vulnerabilidad, pero ha creado un problema inesperado. Vamos a ver cómo solucionarlo.
Snippet para solucionar el error de shortcodes en plantillas de bloque introducido en WordPress 6.2.1
Dado que la actualización de WordPress 6.2.1 soluciona varios bugs de seguridad no te recomiendo volver a la versión anterior (6.2), sino poner el «parche» temporal que ha compartido el contribuidor al core de WordPress Anderson Martins.
Para ello, añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:
// Restablecer el soporte de shortcodes en las plantillas de bloque
add_filter('render_block_data', function($parsed_block) {
if (isset($parsed_block['innerContent'])) {
foreach ($parsed_block['innerContent'] as &$innerContent) {
if (empty($innerContent)) {
continue;
}
$innerContent = do_shortcode($innerContent);
}
}
if (isset($parsed_block['innerBlocks'])) {
foreach ($parsed_block['innerBlocks'] as $key => &$innerBlock) {
if (! empty($innerBlock['innerContent'])) {
foreach ($innerBlock['innerContent'] as &$innerContent) {
if (empty($innerContent)) {
continue;
}
$innerContent = do_shortcode($innerContent);
}
}
}
}
return $parsed_block;
}, 10, 1);
Listo, los shortcode dentro de bloques de plantilla se visualizarán correctamente de nuevo.
Cuando salga la nueva actualización de WordPress corrigiendo este error podrás eliminar este snippet de código.
Conclusión
Si te has encontrado con que los shortcodes no se ejecutan en tus plantillas de bloques tras la actualización a WordPress 6.2.1, ahora ya sabes cómo solucionarlo mediante código.
¿Alguna duda? Te leo en los comentarios.
Y si quieres darme una sugerencia para próximos tutoriales, déjamela en el formulario de contacto. Ventajas de ser suscriptor. 😉