私はUnderscoresスターターテーマで遊び始め、プレーンテキストでもesc_html_e()
が使われていることに気付きました:
<a class="skip-link" href="#content"><?php esc_html_e( 'Skip to content', '_s' ); ?></a>
そのようにそれをエスケープしないのはセキュリティ上のリスクですか?
<a class="skip-link" href="#content">Skip to content</a>
...それとも翻訳のためだけにあるのでしょうか。
ありがとう。
ここでのセキュリティ上のリスクは、プレーンテキストではなく翻訳に関するものです。あなたは esc_html_e
がHTMLをエスケープするための関数であるだけでなく、ローカライズ(l10n)のための関数でもあることに注意するべきです。すなわち他の人がこの文字列を翻訳することはできますが、その翻訳がどうなるかわかりません。誰かが文字列を翻訳してリンクや悪意のあるHTMLを追加する可能性があります。したがって、この場合はHTMLをエスケープするほうが良いでしょう。