概要
esc_attr
関数は、HTMLタグ属性をエスケープするために使用されるWordPressの関数です。この関数は特に、ユーザーが入力したデータをHTML属性に出力する際に、潜在的なセキュリティリスクを軽減するためによく活用されます。以下はこの関数がよく使われるシナリオの例です。
- ユーザー入力をフォームのフィールドに表示する時。
- URLのクエリパラメーターをHTML属性に設定する時。
- JavaScriptコードの中でHTML属性を使用する時。
- カスタムメタボックスでのデータ表示時。
- プラグイン設定ページでのユーザー入力の表示時。
- タグやカテゴリを表示する際の属性設定。
- 外部APIから取得したデータの表示時。
- 投稿エディタでのカスタム入力フィールド作成時。
構文
esc_attr( $text );
パラメータ
$text
(string) – エスケープする文字列。
戻り値
- エスケープ後の文字列(string)。
関連する関数
使用可能なバージョン
この関数は、WordPressの初期バージョンから存在し、以降のバージョンでもサポートされています。
コアファイルのパス
wp-includes/formatting.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1: フォーム入力エスケープ
このサンプルコードは、ユーザーが入力した名前をフォームに表示する際に esc_attr
を使用しています。
<input type="text" name="username" value="<?php echo esc_attr( $username ); ?>">
サンプル2: カスタムメタボックスでの利用
このコードは、カスタムメタボックスでの投稿データをエスケープして表示するサンプルです。
$value = get_post_meta( $post->ID, 'custom_field', true );
echo '<input type="text" name="custom_field" value="' . esc_attr( $value ) . '">';
サンプル3: URLのクエリパラメーターエスケープ
こちらは、URLに含まれるパラメーターをエスケープして安全性を向上させる例です。
$url = 'https://example.com/?param=' . esc_attr( $user_input );
echo '<a href="' . esc_url( $url ) . '">リンク</a>';
サンプル4: JavaScriptに渡す値のエスケープ
このサンプルは、JavaScript内で使用される属性をエスケープする例です。
echo '<script>var username = "' . esc_attr( $username ) . '";</script>';
サンプル5: 投稿カテゴリ表示
このサンプルは、投稿のカテゴリを表示する際に使用される esc_attr
の使用例です。
$categories = get_the_category();
foreach ( $categories as $category ) {
echo '<span class="category" data-id="' . esc_attr( $category->term_id ) . '">' . esc_html( $category->name ) . '</span>';
}
これらのサンプルはすべて著作権フリーのものであり、一般的に利用される esc_attr
関数の適用例です。