概要
esc_html 関数は、WordPressでHTMLを安全に出力するために使用される関数です。この関数は、ユーザーが入力したデータをそのまま出力することによるXSS(クロスサイトスクリプティング)の脆弱性を防ぐために、HTMLタグをエスケープします。主に以下のような場面で使用されることが多いです。
- ユーザーが投稿したコメントを表示する際
- ユーザープロフィール情報を表示する際
- プラグインの設定値を表示する際
- テンプレート内の変数を出力する際
- 投稿やページのタイトルを表示する際
- カスタムフィールドの値を表示する際
- メッセージやエラーメッセージを表示する際
- ウィジェットのタイトルや内容を表示する際
構文
esc_html( string $text ): string
パラメータ
$text(string): エスケープ対象のテキスト。
戻り値
- (string): エスケープされたテキスト。
関連する関数
- https://refwp.com/?titleonly=1&s=esc_html
- https://refwp.com/?titleonly=1&s=esc_html_e
- https://refwp.com/?titleonly=1&s=esc_attr
使用可能なバージョン
esc_html 関数は、WordPress 2.8.0 以降で使用可能です。
コアファイルのパス
wp-includes/general-template.php
サンプルコード
サンプル1: 投稿タイトルを安全に表示
$my_post_title = get_the_title();
echo esc_html($my_post_title);
説明: 投稿のタイトルを取得し、HTMLエスケープして安全に表示します。
サンプル2: コメント内容を安全に表示
$comment_content = get_comment_text();
echo esc_html($comment_content);
説明: ユーザーが投稿したコメントを取得し、HTMLエスケープして安全に表示します。
サンプル3: プラグイン設定値を表示
$my_setting = get_option('my_plugin_setting');
echo esc_html($my_setting);
説明: プラグインの設定値を取得し、HTMLエスケープして表示します。
サンプル4: ウィジェットのタイトルを表示
$widget_title = get_field('widget_title');
echo esc_html($widget_title);
説明: カスタムフィールドからウィジェットのタイトルを取得し、HTMLエスケープして表示します。
サンプル5: エラーメッセージの表示
$error_message = "入力エラー: " . $input_error;
echo esc_html($error_message);
説明: 入力エラーを表示する際に、エラーメッセージを安全にエスケープして表示します。
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| 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 |
esc_html 関数は、現在のところ非推奨または削除された WordPress バージョンはありません。