Si actualizaste a WordPress 6.2.1, una actualización de seguridad y mantenimiento, y se ha roto tu web, foros o red social, o no se muestra parte de tus páginas es muy probable que sea debido a esta versión de WordPress incorpora un ajuste de seguridad que impide que se ejecuten shortcodes desde plantillas.
Esto está provocando no pocos problemas a montones de sitios WordPress que usan plugins como bbPress, con montones de shortcodes en las plantillas, y sobre todo a webs personalizadas mediante shortcodes, uno de los métodos más empleados en WordPress para realizar funciones complejas de manera sencilla.
Si te ha pasado algo de esto, y tienes claro que es debido a esta actualización, puedes aplicar una de estas 2 posibles soluciones:
- Volver a la versión anterior de WordPress, y esperar un parche que solucione este problema, posiblemente en una nueva actualización.
- Usar el siguiente código, compartido en el Trac por Anderson Martins, creando un plugin con él, para poder tener WordPress 6.2.1 pero manteniendo la compatibilidad con shortcodes en plantillas…
<?php /* Plugin Name: Fix shortcode Plugin URI: Description: Restore shortcode support on block templates Author: Anderson Martins Version: 0.1.0 */ 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);
Si no te atreves o no sabes cómo crear un plugin con el código puedes descargarlo desde este enlace, que ya lo he creado yo y empaquetado en un zip, para instalar el plugin como cualquier otro.
Una vez instalado y activo no hay que hacer nada, solo comprobar que ya funciona tu web con normalidad, a pesar de haber actualizado a WordPress 6.2.1.
Nota: Esto que he compartido aquí son soluciones temporales, que no deberías mantener sino buscar otra solución permanente, pues podría suponer una vulnerabilidad para tu web.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
A mí me fue bien con la actualización, gracias por la información.
No tendrías ningún
do_shortcode
metido en el tema. Me alegro 🙂Pero… ¿por qué hacen esto… y sin avisar en una actualización automática?
Hay mogollón de themes que lo usan PARA TODO. Un absoluto desastre.
¡Muchas gracias por el aporte Fernando! La verdad que vaya faena. Yo he estado todo el día liada con eso.
Pero bueno, parece que están buscando soluciones.
Solo me hago eco y comparto esta solución que dio Anderson (bendito sea). Yo he tenido alguna web de cliente con problemas, pero poca cosa, menos mal.
Me salvé !!!
Uso «shortcodes» por todas partes, lo que NO uso son los FAMOSOS bloques.
Gracias a Dios!
Yo uso shortcodes de MemberPress para mostrar formularios de registro, etc. Y shortcodes de ConvertPro para mostrar formularios de apuntarse a la newsletter, y parece que siguen apareciendo,… ¿No afecta a estos shortcodes lo que comentas?