esc_attr():HTML の属性の値に使う文字を安全にする(WordPress)

WordPress

HTML のタグの属性(value=""・title=""・class="" など)に値を出力する前に、" や < を安全な形に変えます。

書き方

esc_attr( string $text ): string
  • $text:属性に使いたい文字
  • 戻り値:属性に使ってよい形に変えた文字

使い方の例

<input type="text" name="keyword" value="<?php echo esc_attr( $keyword ); ?>">

<div class="<?php echo esc_attr( $class_name ); ?>" title="<?php echo esc_attr( get_the_title() ); ?>">

よくある間違い

  • URL に使う:href・src には esc_url() を使います。esc_attr() では javascript: のような危ない URL を止められません。
  • タグの中身に使う:タグとタグの間の文字は esc_html() です。
  • 二重に変える:もう変えた値にもう一度かけると、&amp; のように崩れて見えます。出す直前に 1 回だけかけます。
  • 翻訳した文字をそのまま出すなら esc_attr_e()、返すなら esc_attr__() があります。

関連する関数

  • esc_html():タグの中身の文字を安全にする
  • esc_url():URL を安全にする
  • wp_kses_post():決まったタグだけを残す

逆引きリファレンスの一覧へ