load_muplugin_textdomain()
云策文档标注
概述
load_muplugin_textdomain() 函数用于加载位于 mu-plugins 目录中的插件的翻译字符串。它通过指定文本域和相对路径来定位 .mo 文件,并集成到 WordPress 的即时加载机制中。
关键要点
- 函数用于加载 mu-plugins 目录下插件的翻译文件,支持国际化。
- 参数 $domain 是必需的文本域标识符,$mu_plugin_rel_path 是可选的 .mo 文件相对路径,默认为空。
- 返回布尔值:成功加载返回 true,否则返回 false。
- 内部使用 WP_Textdomain_Registry 设置自定义路径,并处理即时加载机制。
- 从 WordPress 6.7.0 起,翻译改为即时加载,不再立即加载。
代码示例
function wporg_load_textdomain() {
load_muplugin_textdomain( 'my-plugin', basename( dirname(__FILE__) ) . '/lang' );
}
add_action( 'plugins_loaded', 'wporg_load_textdomain' );
原文内容
Loads the translated strings for a plugin residing in the mu-plugins directory.
Parameters
$domainstringrequired-
Text domain. Unique identifier for retrieving translated strings.
$mu_plugin_rel_pathstringoptional-
Relative to
WPMU_PLUGIN_DIRdirectory in which the .mo file resides. Default empty string.
Source
function load_muplugin_textdomain( $domain, $mu_plugin_rel_path = '' ) {
/** @var WP_Textdomain_Registry $wp_textdomain_registry */
/** @var array<string, WP_Translations|NOOP_Translations> $l10n */
global $wp_textdomain_registry, $l10n;
if ( ! is_string( $domain ) ) {
return false;
}
$path = WPMU_PLUGIN_DIR . '/' . ltrim( $mu_plugin_rel_path, '/' );
$wp_textdomain_registry->set_custom_path( $domain, $path );
// If just-in-time loading was triggered before, reset the entry so it can be tried again.
if ( isset( $l10n[ $domain ] ) && $l10n[ $domain ] instanceof NOOP_Translations ) {
unset( $l10n[ $domain ] );
}
return true;
}
Skip to note 2 content
Sebastien SERRE
Example from Codex:
function wporg_load_textdomain() { load_muplugin_textdomain( 'my-plugin', basename( dirname(__FILE__) ) . '/lang' ); } add_action( 'plugins_loaded', 'wporg_load_textdomain' );