J'avais regardé le code mais je ne pouvais pas voir d'échapper à des fonctions comme the_title
the_content
the_excerpt
etc. Je ne le lisais peut-être pas correctement. Dois-je échapper à ces fonctions dans le développement de thème comme:
esc_html ( the_title () )
Modifier: comme indiqué dans les réponses ci-dessous, le code ci-dessus est erroné malgré tout - le code devrait avoir lu
esc_html ( get_the_title () )
the_content
où la sortie HTML de l'éditeur TinyMCE, dans laquelle vous entrez. Ceci est plus réservé aux entrées de formulaire ou aux données créées sur le front-end par exemple par vos utilisateurs.Réponses:
L'échappement dépend entièrement du contexte dans lequel vous utilisez les fonctions. Ce qui est sûr pour l'affichage à l'intérieur des
<h1>
balises, n'est pas nécessairement sûr à afficher pour l'value
attribut d'un champ d'entrée, et même cela ne serait pas nécessairement sûr commehref
valeur d'attribut ....En bref - effectuez vous-même la désinfection lors de sa sortie. Bien que dans le cas de
the_title ()
ouget_the_title ()
, ceesc_html
n'est pas nécessaire, car WordPress applique les fonctions suivantes:convert_chars
wptexturize
Remarque:
the_title
imprime le titre -esc_html ( the_title () )
ne fonctionnera donc pas. De même,the_content
imprime le contenu (dans tous les cas, vous vous attendez à ce que le contenu affiche du HTML).la source
the_title_attribute()
Oui et non - cela dépend si vous voulez que le HTML dans ces fonctions soit sorti ou non. Si vous vous échappez
the_content()
, par exemple, et qu'il contient une<div>
balise, cette balise serait en fait sortie sur la page sous la forme<div>
.Par ailleurs, si vous échappez à la sortie de ces fonctions, vous voudrez utiliser leurs équivalents "get_" (ex.
get_the_content()
) Car ces fonctions font écho à leur sortie directement.la source
Vous pouvez simplement écrire une fonction comme celle-ci et la raccorder au filtre_titre :
la source