説明
esc_attr() は、HTMLの属性値(class、title、value など)に出力する文字列をエスケープする関数です。
基本構文
esc_attr( string $text ): string
引数
$text:エスケープする文字列
戻り値
エスケープ済みの文字列。
使い方(サンプル)
echo '<input type="text" value="' . esc_attr( $value ) . '">';
注意点
- 属性値に出力する変数には、必ず通します。
- URLを入れる属性(
href、src)にはesc_url()を使います。
実務での使いどころ
value・class・data-*などの、HTML属性の値に、変数を出力するとき。- 入力欄の初期値(
value)を、出力するとき。
よくあるミスと対処
- URLを出力する属性(
href・src)に使っている。URLにはesc_url()を使う。 - HTMLのテキストとして出力する値に使っている。テキストには
esc_html()を使う。 - 属性値を、引用符で囲んでいない。
esc_attr()は、引用符で囲まれた属性値の中で使う前提。
NG例
<input type="text" value="<?php echo $value; ?>"> <!-- エスケープがない -->
OK例
<input type="text" value="<?php echo esc_attr( $value ); ?>">
使い分け早見表
| 出力先 | 使う関数 |
|---|---|
| HTMLの属性値 | esc_attr() |
| HTMLのテキスト | esc_html() |
URL(href・src) |
esc_url() |
関連項目
公式リファレンス:esc_attr() | Function | WordPress Developer Resources

コメント