尝试尽早加载翻译。

原型

wp_load_translations_early()

描述

用于在初始加载过程中遇到的错误,在正确检测和加载语言环境之前。

源文件

路径:wp-includes/load.php

<?php
...
function wp_load_translations_early() {
	global $wp_locale;
	static $loaded = false;
	if ( $loaded )
		return;
	$loaded = true;
	if ( function_exists( 'did_action' ) && did_action( 'init' ) )
		return;
	// We need $wp_local_package
	require ABSPATH . WPINC . '/version.php';
	// Translation and localization
	require_once ABSPATH . WPINC . '/pomo/mo.php';
	require_once ABSPATH . WPINC . '/l10n.php';
	require_once ABSPATH . WPINC . '/class-wp-locale.php';
	require_once ABSPATH . WPINC . '/class-wp-locale-switcher.php';
	// General libraries
	require_once ABSPATH . WPINC . '/plugin.php';
	$locales = $locations = array();
	while ( true ) {
		if ( defined( 'WPLANG' ) ) {
			if ( '' == WPLANG )
				break;
			$locales[] = WPLANG;
		}
		if ( isset( $wp_local_package ) )
			$locales[] = $wp_local_package;
		if ( ! $locales )
			break;
		if ( defined( 'WP_LANG_DIR' ) && @is_dir( WP_LANG_DIR ) )
			$locations[] = WP_LANG_DIR;
		if ( defined( 'WP_CONTENT_DIR' ) && @is_dir( WP_CONTENT_DIR . '/languages' ) )
			$locations[] = WP_CONTENT_DIR . '/languages';
		if ( @is_dir( ABSPATH . 'wp-content/languages' ) )
			$locations[] = ABSPATH . 'wp-content/languages';
		if ( @is_dir( ABSPATH . WPINC . '/languages' ) )
			$locations[] = ABSPATH . WPINC . '/languages';
		if ( ! $locations )
			break;
		$locations = array_unique( $locations );
		foreach ( $locales as $locale ) {
			foreach ( $locations as $location ) {
				if ( file_exists( $location . '/' . $locale . '.mo' ) ) {
					load_textdomain( 'default', $location . '/' . $locale . '.mo' );
					if ( defined( 'WP_SETUP_CONFIG' ) && file_exists( $location . '/admin-' . $locale . '.mo' ) )
						load_textdomain( 'default', $location . '/admin-' . $locale . '.mo' );
					break 2;
				}
			}
		}
		break;
	}
	$wp_locale = new WP_Locale();
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/wp_load_translations_early/