概要
unload_textdomain
フィルタは、特定のテキストドメインの翻訳データをアンロードするために使用されます。この機能は、プラグインやテーマで特定の翻訳データを制御したり、無効にしたりする際に役立ちます。以下は、このフィルタがよく使われるシナリオの例です。
- プラグインの多言語対応をカスタマイズする時
- 特定の言語ファイルを削除したい場合
- プラグインが自動的に追加する翻訳を無効にするため
- コンフリクトを避けるために、他のプラグインの翻訳を無効化する時
- テスト環境で特定の翻訳を無効にする場合
- 環境に応じて翻訳メッセージを管理する時
- 特定のユーザー役割に基づいた翻訳の調整
- カスタムテーマの翻訳を管理する時
構文
add_filter('unload_textdomain', 'your_function_name', 10, 2);
パラメータ
$domain
(string): アンロードするテキストドメインの名前。$path
(string): テキストドメインが関連するパス。
戻り値
- bool: アンロードが成功したかどうかを示す真偽値。
関連する関数
利用可能なバージョン
- WordPress 4.0 以降で利用可能
コアファイルパス
wp-includes/l10n.php
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | 〇 |
wp_roles_init | |
setup_theme | 〇 |
after_setup_theme | 〇 |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード1
add_filter('unload_textdomain', function($domain) {
if ('my_plugin_domain' === $domain) {
return false; // 'my_plugin_domain'の翻訳データをアンロードしない
}
return true; // 他のすべてのドメインはアンロードする
});
このコードでは、特定のプラグインのテキストドメイン (my_plugin_domain) の翻訳データをアンロードしないようにしています。その他のドメインは通常通りアンロードします。
サンプルコード2
add_filter('unload_textdomain', function($domain) {
return in_array($domain, ['plugin1_domain', 'plugin2_domain']) ? false : true;
});
ここでは、特定の2つのプラグインのテキストドメインの翻訳データをアンロードしないように設定しています。
サンプルコード3
add_filter('unload_textdomain', function($domain, $path) {
if (strpos($path, 'my-theme') !== false) {
return false; // テーマ内の翻訳データはアンロードしない
}
return true; // その他はアンロードする
});
このコードは、特定のテーマに関連する翻訳データをアンロードしないようにします。他のパスは通常通りアンロードされます。
サンプルコード4
add_filter('unload_textdomain', function($domain) {
if ('deprecated_plugin' === $domain) {
_deprecated_function(__FUNCTION__, '5.0'); // 古いプラグインのテキストドメインを無効にする
return false;
}
return true;
});
このコードでは、古いプラグインのテキストドメインが使用されないようにするとともに、非推奨の関数の警告を出します。
サンプルコード5
add_filter('unload_textdomain', function($domain) {
if (is_admin() && 'admin_domain' === $domain) {
return false; // 管理画面の翻訳データは無効化しない
}
return true; // その他の環境ではアンロードする
});
このコードは、管理画面での特定のテキストドメインを保護し、通常の条件下ではアンロードします。