函数文档

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_DIR directory in which the .mo file resides. Default empty string.

Return

bool True when textdomain is successfully loaded, false otherwise.

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;
}

Changelog

Version Description
6.7.0 Translations are no longer immediately loaded, but handed off to the just-in-time loading mechanism.
4.6.0 The function now tries to load the .mo file from the languages directory first.
3.0.0 Introduced.

User Contributed Notes