Hola gente,
Tenemos un sitio WordPress 6.7.x con varios complementos instalados, la mayoría de los cuales están bastante implementados (BuddyBoss, WooCommerce).
Desde que actualizamos a 6.7, hemos visto que las mejoras del i8n causan un problema. Pero a diferencia de otros informes, vemos que esto causa problemas más fundamentales debido a la forma en que WP intenta manejar el error:
[24-Nov-2024 18:44:56 UTC] PHP Fatal error: Uncaught Error: Class 'WP_Block_Parser' not found in /public_html/wp-includes/blocks.php:2225
Stack trace:
#0 /public_html/wp-includes/blocks.php(1820): parse_blocks('Function _load_...')
#1 /public_html/wp-includes/formatting.php(5200): filter_block_content('Function _load_...', Array, Array)
#2 /public_html/wp-includes/class-wp-hook.php(324): wp_pre_kses_block_attributes('Function _load_...', Array, Array)
#3 /public_html/wp-includes/plugin.php(205): WP_Hook->apply_filters('Function _load_...', Array)
#4 /public_html/wp-includes/kses.php(946): apply_filters('pre_kses', 'Function _load_...', Array, Array)
#5 /public_html/wp-includes/kses.php(754): wp_kses_hook('Function _load_...', Array, Array)
#6 /public_html/wp-includes/functions.php(6106): wp_kses('Function _load_...', Array, Array)
#7 /public_html/wp-includes/functions.php(6054): wp_trigger_error('', 'Function _load_...')
#8 / in /public_html/wp-includes/blocks.php on line 2225
Parece que la falla de _load está causando que toda la arquitectura de bloques falle de tal manera que ni siquiera puede ejecutar el cargador automático de clases. Seguramente WordPress debería ser un poco más resistente aquí.
De hecho, para siquiera darme cuenta de que se trataba de este cambio, tuve que agregar temporalmente un error_log
a wp-includes/functions.php
para registrar el mensaje sin procesar antes de pasarlo a kses
(ya que el error fatal anterior muestra solo unos pocos caracteres)
[18-Nov-2024 19:02:26 UTC] PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the buddyboss
domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /public_html/wp-includes/functions.php on line 6114
Por ahora hemos desactivado temporalmente WP_DEBUG con la esperanza de que esto lo solucione, pero es posible que simplemente esté ocultando el problema. Hemos visto que los siguientes complementos informan este error:
- ventana emergente modal de inicio de sesión y registro de ajax
- amigo jefe
- buddyboss-pro
- cumplimiento-gdpr
- ventajas de gravedad
- woocomercio
- raya-de-puerta-de-woocommerce
Algunos de estos están ampliamente implementados (por ejemplo, WooCommerce). ¿Existe algún plan para mejorar la forma en que WP maneja este error en una próxima versión?