説明
__() は、文字列を翻訳して、値として返す関数です。テーマやプラグインの、翻訳できる文字列に使います。出力する関数は _e()。
基本構文
__( string $text, string $domain = 'default' ): string
引数
$text:翻訳する文字列(原文)$domain:テキストドメイン(翻訳ファイルの識別名)
戻り値
翻訳された文字列。翻訳がないときは、原文を返します。
使い方(サンプル)
$label = __( '送信する', 'my-plugin' );
echo esc_html( $label );
注意点
- 出力しません。値を返すだけです。
- エスケープは、行われません。HTMLに出力するときは、
esc_html__()や、esc_html()を通します。 - テキストドメインは、変数ではなく、文字列で直接書きます。
実務での使いどころ
- 翻訳できる形で、ボタンの文字や、見出しを、変数に入れて使うとき。
sprintf()と組み合わせて、数値を含む文を、翻訳するとき。
よくあるミスと対処
- エスケープせずに、そのまま出力している。
- テキストドメインや原文を、変数にしている。翻訳ファイルを作るときに、文字列を抽出できない。
- 翻訳する文を、連結で作っている。1つの文として、書く。
NG例
echo __( $label, $domain ); // 変数で、翻訳を抽出できない。エスケープもない
OK例
echo esc_html( __( '送信する', 'my-plugin' ) );
// 数値を含む文: sprintf( __( '%d件の結果', 'my-plugin' ), $count )
使い分け早見表
| 関数 | 役割 |
|---|---|
__() |
翻訳して、値を返す |
_e() |
翻訳して、出力する |
esc_html__() |
翻訳して、エスケープして、値を返す |
_x() |
文脈つきで、翻訳して、値を返す |
関連項目
公式リファレンス:__() | WordPress Developer Resources

コメント