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()です。 - 二重に変える:もう変えた値にもう一度かけると、
&のように崩れて見えます。出す直前に 1 回だけかけます。 - 翻訳した文字をそのまま出すなら
esc_attr_e()、返すならesc_attr__()があります。
関連する関数
esc_html():タグの中身の文字を安全にするesc_url():URL を安全にするwp_kses_post():決まったタグだけを残す



