概要
switch_to_locale
関数は、WordPress のロケール(言語)を切り替えるための関数です。この関数を使用することで、特定の言語の翻訳やテキストドメインを適用でき、国際化や多言語対応を強化できます。主に以下のような機能を実装する際に使用されます。
- プラグインやテーマの国際化対応
- 特定のページやコンテンツの多言語表示
- 管理画面での言語切り替え
- フロントエンドでの言語切り替え
- 翻訳ファイルの読み込み
- 言語に応じたコンテンツの表示
- カスタム投稿タイプの翻訳領域の設定
- ウィジェットやショートコードの多言語対応
構文
switch_to_locale( $locale );
パラメータ
$locale
(string) – 切り替えたいロケール(例: ‘ja’、’en_US’)。省略可能。
戻り値
- (void) – 戻り値はありません。
関連する関数
使用可能なバージョン
switch_to_locale
関数は、WordPress 4.0以降で使用可能です。
コアファイルのパス
wp-includes/l10n.php
サンプルコード
サンプルコード1: テーマのロケール切り替え
このサンプルコードは、特定のテンプレートファイル内で日本語のロケールを使用する方法を示しています。
function custom_theme_locale() {
switch_to_locale('ja');
// 日本語の翻訳を適用
}
add_action('wp', 'custom_theme_locale');
サンプルコード2: プラグインの多言語表示
このサンプルコードは、プラグインの特定の機能で英語のロケールを使用する例です。
function my_plugin_locale() {
switch_to_locale('en_US');
// 英語の翻訳を適用
}
add_action('init', 'my_plugin_locale');
サンプルコード3: ウィジェット内でのロケール制御
ウィジェット内での特定の条件に基づいてロケールを切り替える例です。
function my_widget_locale($args) {
if (is_category('特定のカテゴリー')) {
switch_to_locale('fr_FR'); // フランス語に切替
}
}
add_action('widget_display', 'my_widget_locale');
サンプルコード4: ショートコード内での切り替え
このコードはショートコードを使用して、呼び出し時に特定の言語を切り替えます。
function my_shortcode_locale($atts) {
switch_to_locale('de_DE'); // ドイツ語に切替
return 'このテキストはドイツ語です。';
}
add_shortcode('my_shortcode', 'my_shortcode_locale');
サンプルコード5: 管理画面での言語切り替え
このサンプルは、管理画面での言語を特定の条件に基づいて切り替える例です。
function admin_locale_switch() {
switch_to_locale('it_IT'); // イタリア語に切替
}
add_action('admin_init', 'admin_locale_switch');
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |
switch_to_locale
関数は、特定の WordPress バージョンで非推奨または削除されていません。