私はコードを見ましたが、the_title
the_content
the_excerpt
etcのような関数からのエスケープは見られませんでした。私はそれを正しく読んでいないかもしれません。テーマ開発では、これらの機能をエスケープする必要がありますか。
esc_html ( the_title () )
編集:上記のコードの下の答えで指摘されているように関係なく間違っている - コードはesc_html ( get_the_title () )
を読んでいる必要があります
エスケープは完全にあなたが関数を使用している文脈に依存します。 <h1>
タグの中に表示するのに安全なものは、必ずしも入力フィールドのvalue
属性のために表示するのに安全であるというわけではなく、それでもhref
属性値として安全であるというわけではありません。
要するに - あなたがそれを出力するようにあなた自身で消毒を行いなさい。 the_title ()
またはget_the_title ()
の場合は、WordPressが次の機能を適用するため、esc_html
は必要ありません。
注: the_title
はタイトルを表示します - そのためesc_html ( the_title () )
は機能しません。同様に、the_content
はコンテンツを出力します(いずれの場合も、コンテンツにHTMLが表示されるはずです)。
はい、いいえ - これらの関数のHTMLを出力するかどうかによって異なります。たとえばthe_content()
をエスケープし、それに<div>
タグが含まれている場合、そのタグは実際には代わりに<div>
としてページに出力されます。
ところで、これらの関数の出力をエスケープするのであれば、それらの関数が直接その出力をエコーするので、それらの "get_"と同等のもの(例えばget_the_content()
)を使いたいでしょう。
このような関数を書いて the_title filterにフックするだけです。
function my_escape_title( $title ){
return esc_html( $title );
}
add_filter( 'the_title', 'my_escape_title' );