概要
load_theme_textdomain
関数は、WordPressテーマ用のMOファイルをロードするために用いられます。この関数を使用することによって、テーマ内の文字列の翻訳を可能にし、国際化をサポートします。この関数は主に以下のような機能を実装する際によく使われます。
- テーマの翻訳ファイルの読み込み
- 多言語対応のユーザーインターフェースの構築
- プラグインとテーマ間の翻訳の一貫性の確保
- カスタムポストタイプやウィジェット用の翻訳機能の提供
- マルチサイト環境での多言語サポート
- のらうす翻訳(POTファイル)の提供
- ウェブサイトのローカライズを容易にする
- 国内市場向けの特定の翻訳ニーズに応える
構文
load_theme_textdomain( $domain, $path );
パラメータ
$domain
(string): テーマのテキストドメイン名。$path
(string): MOファイルの保存場所。省略した場合、通常はテーマのディレクトリ内が対象となります。
戻り値
この関数は真偽値を返します。成功した場合はtrue
、失敗した場合はfalse
を返します。
関連する関数
- https://refwp.com/?titleonly=1&s=translator
- https://refwp.com/?titleonly=1&s=gettext
- https://refwp.com/?titleonly=1&s=ungettext
- https://refwp.com/?titleonly=1&s=_x
使用可能なバージョン
この関数はWordPress 2.2.0以降で利用可能です。
コアファイルパス
load_theme_textdomain
関数は次のファイルに含まれています:
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 | 〇 |
サンプルコード
以下にload_theme_textdomain
関数の具体的な使用例を示します。
サンプル1: テーマの翻訳ファイルを読み込む
function my_theme_setup() {
load_theme_textdomain( 'mytheme', get_template_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'my_theme_setup' );
このコードは、”mytheme”というテキストドメインの翻訳ファイルをテーマの/languages
ディレクトリからロードします。
サンプル2: 言語の選択を確認する
function check_language() {
$current_lang = get_locale();
if ( $current_lang == 'ja' ) {
load_theme_textdomain( 'mytheme', get_template_directory() . '/languages' );
}
}
add_action( 'setup_theme', 'check_language' );
このコードは、現在のロケールが日本語であることを確認し、日本語の翻訳をロードします。
サンプル3: プラグインとテーマの連携
function load_my_theme_textdomain() {
load_theme_textdomain( 'mytheme', dirname( __FILE__ ) . '/languages' );
}
add_action( 'plugins_loaded', 'load_my_theme_textdomain' );
プラグインが読み込まれたときに、特定のテーマの翻訳ファイルをロードします。
サンプル4: テーマ初期化時の翻訳設定
function theme_init() {
load_theme_textdomain( 'mytheme', get_template_directory() . '/languages' );
}
add_action( 'init', 'theme_init' );
このコードは、WordPressの初期化時にテーマの翻訳を設定します。
サンプル5: バージョン確認と翻訳ファイルのロード
if ( version_compare( get_bloginfo( 'version' ), '5.0', '>=' ) ) {
load_theme_textdomain( 'mytheme', get_template_directory() . '/languages' );
}
このコードは、WordPressがバージョン5.0以上の場合にのみ、翻訳ファイルを読み込みます。