# Échappement

> Conversion d'une donnée juste avant son affichage pour neutraliser les caractères qui pourraient être interprétés comme du code par le navigateur.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/echappement/

Même une donnée nettoyée à l'entrée peut redevenir dangereuse si le contexte d'affichage change : une chaîne parfaitement anodine dans une base de données peut casser une page HTML si elle contient un caractère `

## Fonctions dans WordPress

- `esc_html()` : pour du texte affiché entre deux balises HTML.
- `esc_attr()` : pour une valeur placée dans un attribut HTML.
- `esc_url()` : pour une URL, notamment dans un attribut `href` ou `src`.
- `esc_js()` : pour une chaîne insérée dans du JavaScript en ligne.

## Exemple

```
<a href="<?php echo esc_url($lien); ?>">
    <?php echo esc_html($titre); ?>
</a>
```

## Bon à savoir

La règle d'or des développeurs de thèmes WordPress est « échapper tard, échapper souvent » : appliquer la bonne fonction d'échappement au moment précis de l'affichage plutôt qu'en amont, car le même contenu peut se retrouver affiché dans plusieurs contextes différents (une page, un flux RSS, un attribut) qui exigent chacun leur propre traitement. Utiliser `esc_attr()` là où il faudrait `esc_html()`, ou l'inverse, laisse subsister une faille malgré l'apparence de prudence, car chaque fonction neutralise un jeu de caractères différent selon la grammaire du contexte visé.

## Pièges fréquents

Échapper une donnée qui a déjà été échappée une première fois plus haut dans la chaîne d'exécution peut afficher des entités HTML doublées à l'écran, comme `&amp;` au lieu d'une simple esperluette. Mieux vaut garder la donnée brute le plus longtemps possible et n'appliquer l'échappement qu'au tout dernier moment, juste avant l'instruction `echo` qui l'affiche réellement.
