HTMLをエスケープし、安全な文字列として出力します。
具体的には、HTMLの中で使われる<や>のような特殊文字を文字参照に変換します。例えば<は<に>は>に変換します。文字参照に変換することで、<や>のようなHTMLにとって特別な意味を持つタグを単なる文字列として扱うことができます。これにより、呼び出すデータに危険な <script> などが仕込まれていてもscriptを実行しないため安全です。
esc_html($text);| 引数 | 必須/任意 | 引数に指定するもの |
|---|---|---|
| 第1引数 $text | 必須 | エスケープしたいHTML(文字列) |
戻り値(返す値):エスケープされた文字列を返します。
※表示するにはechoします。
<?php
$text = '<p>ここにテキストが入ります。</p>';
echo esc_html($text);
?>結果:<p>ここにテキストが入ります。</p>
※pタグはプレーンな文字列になっているのでそのままブラウザに表示される。
下記の例では、scriptが実行されてしまいます。
<?php
$text = '<script>alert("危険なスクリプト!");</script>';
echo $text;
?>結果:「危険なスクリプト!」というアラートをブラウザに表示。
この場合下記のようにエスケープします。
<?php
$text = '<script>alert("危険なスクリプト!");</script>';
echo esc_html($text);
?>結果:<script>alert(“危険なスクリプト!”);</script>
【引数とは】
テンプレートタグ(=関数)を実行する際に、引数を渡すことができるテンプレートタグがあります。引数は、関数の中で使われるので、渡す引数の値によって実行結果が変わってきます。何を処理したいのか、どのようなデータを取得したいのかによって渡す引数が変わります。
【引数について】
カスタムフィールドから値を呼び出す際にエスケープをする。
<?php $description = esc_html(get_field('description')); ?>
<p class='description'><?php echo $description; ?></p>※get_fieldはプラグインACFで作成したカスタムフィールドを呼び出す関数
※当サイトでは初期値とデフォルト値の言葉の定義を区別せず、原則統一して初期値を採用しています。