The load_textdomain WordPress action fires before the MO translation file is loaded.
Usage
add_action('load_textdomain', 'your_custom_function', 10, 2);
function your_custom_function($domain, $mofile) {
// your custom code here
}
Parameters
$domain(string) – Text domain, unique identifier for retrieving translated strings.$mofile(string) – Path to the .mo file.
More information
See WordPress Developer Resources: load_textdomain
Examples
Load a custom MO file
Replace the default MO file with a custom one from your theme directory.
add_action('load_textdomain', 'load_custom_mo_file', 10, 2);
function load_custom_mo_file($domain, $mofile) {
// Check if the domain matches your text domain
if ($domain == 'your-text-domain') {
// Set the custom MO file path in your theme directory
$mofile = get_template_directory() . '/languages/custom-' . $domain . '.mo';
}
return $mofile;
}
Modify MO file path
Change the MO file path for a specific text domain.
add_action('load_textdomain', 'change_mo_file_path', 10, 2);
function change_mo_file_path($domain, $mofile) {
if ($domain == 'your-text-domain') {
$mofile = '/new/path/to/your-' . $domain . '.mo';
}
return $mofile;
}
Log MO file loading
Log each MO file loaded by WordPress.
add_action('load_textdomain', 'log_mo_file_loading', 10, 2);
function log_mo_file_loading($domain, $mofile) {
error_log('Loading MO file: ' . $mofile . ' for domain: ' . $domain);
}
Load additional MO files
Load additional MO files for a specific text domain.
add_action('load_textdomain', 'load_additional_mo_files', 10, 2);
function load_additional_mo_files($domain, $mofile) {
if ($domain == 'your-text-domain') {
$additional_mofile = get_template_directory() . '/languages/additional-' . $domain . '.mo';
load_textdomain($domain, $additional_mofile);
}
}
Skip loading MO file for a specific text domain
Prevent loading the MO file for a specific text domain.
add_action('load_textdomain', 'skip_loading_mo_file', 10, 2);
function skip_loading_mo_file($domain, $mofile) {
if ($domain == 'skip-this-domain') {
// Return an empty string to skip loading the MO file
return '';
}
return $mofile;
}