ワードプレスのesc_attr関数の使用方法・解説

概要

esc_attr 関数は、HTMLタグ属性をエスケープするために使用されるWordPressの関数です。この関数は特に、ユーザーが入力したデータをHTML属性に出力する際に、潜在的なセキュリティリスクを軽減するためによく活用されます。以下はこの関数がよく使われるシナリオの例です。

  1. ユーザー入力をフォームのフィールドに表示する時。
  2. URLのクエリパラメーターをHTML属性に設定する時。
  3. JavaScriptコードの中でHTML属性を使用する時。
  4. カスタムメタボックスでのデータ表示時。
  5. プラグイン設定ページでのユーザー入力の表示時。
  6. タグやカテゴリを表示する際の属性設定。
  7. 外部APIから取得したデータの表示時。
  8. 投稿エディタでのカスタム入力フィールド作成時。

構文

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 関数の適用例です。

この関数について質問する


上の計算式の答えを入力してください