The override_unload_textdomain WordPress PHP filter allows you to control if a text domain should be prevented from unloading.
Usage
add_filter('override_unload_textdomain', 'your_custom_function', 10, 3); function your_custom_function($override, $domain, $reloadable) { // your custom code here return $override; }
Parameters
- $override (bool): Whether to override the text domain unloading. Default false.
- $domain (string): Text domain. Unique identifier for retrieving translated strings.
- $reloadable (bool): Whether the text domain can be loaded just-in-time again.
More information
See WordPress Developer Resources: override_unload_textdomain
Examples
Prevent a specific text domain from unloading
To prevent a specific text domain from unloading, check if the $domain
matches the desired text domain and set $override
to true.
add_filter('override_unload_textdomain', 'prevent_unload_my_textdomain', 10, 3); function prevent_unload_my_textdomain($override, $domain, $reloadable) { if ($domain === 'my-textdomain') { $override = true; } return $override; }
Only allow reloadable text domains to unload
If you want to only allow reloadable text domains to unload, check the $reloadable
value and set $override
accordingly.
add_filter('override_unload_textdomain', 'allow_only_reloadable_unload', 10, 3); function allow_only_reloadable_unload($override, $domain, $reloadable) { $override = !$reloadable; return $override; }
Prevent all text domains from unloading
To prevent all text domains from unloading, simply set $override
to true for all text domains.
add_filter('override_unload_textdomain', 'prevent_all_unload', 10, 3); function prevent_all_unload($override, $domain, $reloadable) { $override = true; return $override; }
Log text domains before unloading
If you want to log the text domains before unloading them, you can use this filter to achieve that.
add_filter('override_unload_textdomain', 'log_textdomain_unload', 10, 3); function log_textdomain_unload($override, $domain, $reloadable) { error_log('Unloading text domain: ' . $domain); return $override; }
Modify the unload behavior based on a custom condition
You can also modify the unload behavior based on custom conditions, such as user role or capabilities.
add_filter('override_unload_textdomain', 'custom_unload_condition', 10, 3); function custom_unload_condition($override, $domain, $reloadable) { if (current_user_can('manage_options')) { $override = true; } return $override; }