Function _load_textdomain_just_in_time was called incorrectly
This WordPress notice means a plugin or theme loaded its translations too early. It is harmless to visitors, and the message names the plugin. Here is how to read it.
On this page
This notice means a plugin or theme asked WordPress for translated text before WordPress was ready to supply it. Your site still works and visitors see nothing wrong. The notice names the plugin responsible, and the fix belongs to that plugin's author.
PHP Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the example-plugin 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.)Which plugin is causing it?
Read the word before "domain" in the message. In the example it is example-plugin. That is the plugin's text domain, and it almost always matches the plugin's folder name in wp-content/plugins. If it matches your theme's folder name, the theme is the cause.
Why did it start appearing?
WordPress 6.7 changed how translations are loaded and added this notice to point out code that loads them too early. Plugins that had worked without complaint for years began to log it. Nothing about your site changed except that WordPress now reports it.
Is it harmful?
To visitors, no. On sites in a language other than English, some text from that plugin may appear untranslated. The practical harm is the noise: the notice is written on every request, so it fills the debug log and hides the errors that matter.
How do I fix it?
If it is a plugin or theme you installed
- Update it. Most actively maintained plugins have fixed this.
- If the notice remains, report it to the author with the full message.
- If the plugin is no longer maintained, plan to replace it.
If it is your own code
Something is calling a translation function such as __() or _e() before the init action, or calling load_plugin_textdomain() too early. Move that code so it runs on init or later.
add_action( 'init', function () {
load_plugin_textdomain( 'example-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
} );A common hidden cause is translated text in a class property or a settings array that is built as soon as the plugin file loads.
Can I just hide it?
You can keep it off the screen by setting WP_DEBUG_DISPLAY to false, and you should. Hiding all notices from the log to get rid of this one also hides notices you want to see. It is better to keep recording and group the repeats.
How Paul Bunyan helps
Paul Bunyan groups repeated notices, so this one shows as a single line per plugin with a count, the plugin's name and the file and line that triggered it. You can see at a glance which plugins need an update, and the rest of your errors stay readable.
