Devrais-je échapper à des fonctions wordpress comme the_title, the_excerpt, the_content

12

J’ai jeté un œil au code, mais je n’ai pas trouvé 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, par exemple:

esc_html ( the_title () )

Modifier: comme indiqué dans les réponses ci-dessous, le code ci-dessus est faux, le code aurait dû être lu. esc_html ( get_the_title () )

    
posée byronyasgur 18.05.2012 - 18:10

3 réponses

14

L'échappement dépend entièrement du contexte dans lequel vous utilisez les fonctions. Ce qui est sûr pour l'affichage dans les balises <h1> , ne l'est pas forcément pour l'attribut value d'un champ d'entrée, 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. Bien que 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 affiche le titre. Ainsi, esc_html ( the_title () ) ne fonctionnera pas. De même, the_content imprime le contenu (dans tous les cas, vous vous attendez à ce qu'il affiche du code HTML).

    
réponse donnée Stephen Harris 18.05.2012 - 18:37
5

Oui et non - dépend si vous voulez que le HTML dans ces fonctions soit sorti ou non. Si, par exemple, vous échappez à the_content() et qu’il contienne une balise <div> , cette balise serait en fait affichée sur la page sous la forme &lt;div&gt; .

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.

    
réponse donnée Joseph Leedy 18.05.2012 - 18:38
0

Vous pouvez simplement écrire une fonction comme celle-ci et la lier au filtre the_title :

function my_escape_title( $title ){
    return esc_html( $title );
}
add_filter( 'the_title', 'my_escape_title' );
    
réponse donnée Vilius 04.08.2016 - 23:57

Lire d'autres questions sur les étiquettes