esc_html__() の使い方|説明・引数・注意点

説明

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() 翻訳して、エスケープして、出力する
__() 翻訳して、値を返す(エスケープなし)

関連項目

esc_html_e()、__()、esc_html()

公式リファレンス:esc_html__() | WordPress Developer Resources

コメント

タイトルとURLをコピーしました