説明
esc_html__() は、文字列を翻訳して、HTMLのテキスト用にエスケープして、値として返す関数です。出力する関数は esc_html_e()。
基本構文
esc_html__( string $text, string $domain = 'default' ): string
引数
$text:翻訳する文字列(原文)$domain:テキストドメイン
戻り値
翻訳され、エスケープされた文字列。
使い方(サンプル)
echo '<p>' . esc_html__( '送信する', 'my-plugin' ) . '</p>';
注意点
- 出力しません。値を返すだけです。
- HTMLを含む翻訳では、タグもエスケープされます。HTMLを残したいときは、
wp_kses_post( __() )などを使います。 - テキストドメインは、文字列で直接書きます。
実務での使いどころ
- 翻訳した文字列を、HTMLのテキストとして、安全に、組み立てて出力するとき。
よくあるミスと対処
- HTMLのタグを含む翻訳に使い、タグが文字として表示される。
- 属性値に使っている。属性値には
esc_attr__()を使う。 - テキストドメインを、変数にしている。
NG例
echo '<p title="' . esc_html__( '説明', 'my-plugin' ) . '">'; // 属性値には esc_attr__
OK例
echo '<p>' . esc_html__( '説明', 'my-plugin' ) . '</p>';
使い分け早見表
| 関数 | 役割 |
|---|---|
esc_html__() |
翻訳して、エスケープして、値を返す |
esc_html_e() |
翻訳して、エスケープして、出力する |
__() |
翻訳して、値を返す(エスケープなし) |

コメント