Si has visto este notice en tu instalación de WordPress:
La función _load_textdomain_just_in_time ha sido llamada de forma incorrecta. La carga de la traducción para el dominio ciclo se activó demasiado pronto.
entonces estás usando funciones de traducción como __() o _e() antes de tiempo, es decir, antes del hook init.
¿Por qué ocurre?
WordPress necesita que los archivos de traducción (.mo) se carguen después de que el sistema esté inicializado. Si ejecutas algo como esto directamente en el functions.php o en un plugin:
define( 'MY_LABEL', __( 'Some text', 'my_textdomain' ) );
WordPress todavía no tiene listo el sistema de traducción, y lanza el notice.
¿Cómo solucionarlo?
Usa funciones de traducción solo dentro de hooks (init, after_setup_theme, etc.). O guarda strings sin traducir, y tradúcelos cuando los vayas a mostrar. Ejemplo correcto:
add_action( 'init', function() {
define( 'MY_LABEL', __( 'Some text', 'my_textdomain' ) );
} );
Cómo depurar el error con un plugin de ayuda
Cuando tienes muchos archivos y no sabes dónde se está usando mal __(), puedes usar este plugin temporal para detectar el origen exacto:
Paso 1: Crea el plugin en wp-content/plugins/debug-textdomain-loader.php
/**
* Plugin Name: Debug Textdomain Loader
*/
add_filter( 'override_load_textdomain', function( $override, $domain ) {
if ( $domain === 'my_textdomain' ) {
error_log( "⚠️ Dominio '$domain' intentado cargar demasiado pronto" );
error_log( print_r( debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS ), true ) );
}
return false;
}, 1, 2 );
Paso 2: Asegúrate de tener la depuración activa
En tu wp-config.php:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', true );
Paso 3: Activa el plugin y revisa wp-content/debug.log
Verás una traza completa con el archivo y línea exacta donde se ha intentado cargar el dominio de traducción demasiado pronto.
Conclusión
Este problema es muy común en temas o plugins personalizados, y suele pasar desapercibido hasta que actualizas WordPress a versiones más estrictas (como 6.7+) y activas el debug. La buena noticia es que tiene una solución sencilla y reutilizable.
