J'avais jeté un œil au code, mais je ne pouvais pas voir d'échappatoire sur des fonctions comme the_title
the_content
the_excerpt
etc. Je pourrais ne pas le lire correctement. Dois-je échapper à ces fonctions dans le développement de thèmes comme:
esc_html ( the_title () )
Edit: comme indiqué dans les réponses ci-dessous, le code ci-dessus est faux, le code aurait dû se lire esc_html ( get_the_title () )
Echapper dépend entièrement du contexte dans lequel vous utilisez les fonctions. Ce qui est sûr pour l'affichage à l'intérieur des balises <h1>
, ne l'est pas forcément pour l'attribut value
d'un champ de saisie, et même cela ne serait pas nécessairement sûr en tant que valeur d'attribut href
....
En bref, effectuez vous-même la désinfection au fur et à mesure que vous la sortez. Cependant, dans le cas de the_title ()
ou get_the_title ()
, esc_html
n'est pas nécessaire, car WordPress applique les fonctions suivantes:
Remarque: the_title
imprime le titre - donc esc_html ( the_title () )
ne fonctionnera pas. De même, the_content
imprime le contenu (dans tous les cas, vous vous attendriez à ce qu'il affiche du code HTML).
Oui et non - cela dépend si vous voulez que le HTML dans ces fonctions soit édité ou non. Si vous échappez à the_content()
, par exemple, et qu'il contient une balise <div>
, cette balise serait en fait affichée sur la page en tant que <div>
à la place.
En passant, si vous échappez la sortie de ces fonctions, vous voudrez utiliser leurs équivalents "get_" (ex. get_the_content()
) car ces fonctions font directement écho à leur sortie.
Vous pouvez simplement écrire une fonction comme celle-ci et la raccorder à the_title filter:
function my_escape_title( $title ){
return esc_html( $title );
}
add_filter( 'the_title', 'my_escape_title' );