unload_textdomain() WP 3.0.0

Вивантажує (видаляє, скасовує) підключений файл перекладу.

Файли перекладу підключаються функцією load_theme_textdomain() .

unload_textdomain() не видаляє сам файл, а просто вивантажує інформацію для перекладу з глобальної змінної $l10n .

Хуки з функції

Повертає

true|false. Логічні: true чи false.

Використання

unload_textdomain($domain);
$domain
(рядок) (обов’язковий)
Ярлик (ідентифікатор) завантаженого перекладу, який потрібно вивантажити. Цей ярлик вказується в першому параметрі при підключенні файлу, функціях load_textdomain() і похідних від неї.

Приклади

0

#1 Скасуємо переклад плагіна

Припустимо, ми маємо плагін і в ньому підключається файл перекладу за допомогою load_plugin_textdomain(‘books’ …) . А нам не потрібний переклад цього плагіна. Тоді ми можемо відключити переклад, вивантаживши підключені дані перекладу.

Файли перекладу зазвичай підключаються до хука plugins_loaded який спрацьовує раніше, ніж init . Тому скористаємося хуком init , щоб відключити раніше підключені дані для перекладу:

add_action('init', 'my_unload_textdomain');
function my_unload_textdomain(){
	unload_textdomain('books');
}
0

#2 Скасуємо переклад WordPress

Допустимо нам не потрібно перекладати адмінку сайту, ми і так там все знаємо і не хочемо вкотре навантажувати сервер. Але переклад плагінів нам потрібен, тому ми не можемо просто поставити англійську мову в налаштуваннях, адже тоді і плагіни будуть на англ.

Вихід тут такий, вимкнути переклад WordPress у коді. Для цього додамо такий код файл теми functions.php:

add_action('init', 'my_unload_textdomain');
function my_unload_textdomain(){
	// default - ярлик перекладу WP
	// twentyfifteen – ярлик перекладу теми WP
	unload_textdomain('default');
}

нотатки

  • Global. MO[]. $l10n Залишити все поточно loaded text domains.
  • Global. MO[]. $l10n_unloaded Залишити весь текст домашніх тварин, які повинні бути завантажені.

список змін

З версії 3.0.0Введено.

Код unload_textdomain() WP 6.0.2

function unload_textdomain( $domain ) {
	Global $l10n, $l10n_unloaded;

	$l10n_unloaded = (array) $l10n_unloaded;

	/**
	 * Filters whether to override тексту додому unloading.
	 *
	 * @ Since 3.0.0
	 *
	 * @param bool $override Whether to override the домашній text unloading. Default false.
	 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
	 */
	$plugin_override = apply_filters( 'override_unload_textdomain', false, $domain );

	if ( $plugin_override ) {
		$l10n_unloaded[ $domain ] = true;

		return true;
	}

	/**
	 * Fires before the text domain is unloaded.
	 *
	 * @ Since 3.0.0
	 *
	 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
	 */
	do_action( 'unload_textdomain', $domain );

	if ( isset( $l10n[ $domain ] ) ) {
		unset($l10n[$domain]);

		$l10n_unloaded[ $domain ] = true;

		return true;
	}

	return false;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *