esc_textarea()
Définition : esc_textarea() prépare une chaîne pour être affichée entre les balises textarea d’un formulaire HTML. Elle empêche les caractères spéciaux du texte de fermer ou modifier involontairement le champ.
Comprendre et utiliser
À quoi sert ce terme ?
Elle aide les interfaces d’administration WordPress à réafficher un texte existant pour modification sans interpréter sa syntaxe comme des éléments HTML. La donnée reste éditable par l’utilisateur.
Fonctionnement technique
La fonction est prévue pour un contexte de texte de textarea, différent de l’attribut value d’un input. Elle transforme les caractères sensibles avant l’insertion dans le document HTML.
Dans quels contextes l’utiliser ?
L’utiliser dans les écrans de réglages ou de modification de descriptions libres. Lors de l’enregistrement, nettoyer et valider les données séparément, avec nonce et permissions.
Cas concret : ATOOLPHA
Un formulaire interne ATOOLPHA permet de modifier la description d’un service. Les caractères < et > doivent rester du texte dans le champ.
Exemple de code commenté
Extrait PHP destiné à un plugin ou à un template WordPress, dans le contexte indiqué ; pas au contenu HTML de l’article.
<?php
$description = get_option( 'atoolpha_description', '' );
echo '<label for="atoolpha-description">Description</label>';
echo '<textarea id="atoolpha-description" name="atoolpha_description">';
echo esc_textarea( $description );
echo '</textarea>';
Décryptage de l’exemple
L’option existante est lue depuis WordPress puis échappée selon le contexte textarea. Cet extrait illustre l’affichage : il ne constitue pas un traitement complet de soumission.
Résultat attendu
Le texte enregistré apparaît dans le champ, sans casser son balisage lorsque la description contient des caractères HTML.
Exercice pratique et vérification
Tester avec une valeur contenant guillemets, chevrons et esperluettes. Vérifier que le DOM conserve une seule textarea et que la valeur soumise n’est pas tronquée.
Précautions et limites
Le formulaire complet doit comporter autorisation, nonce, validation et stockage approprié. Esc_textarea() protège la sortie, pas l’entrée ni l’écriture.
À ne pas confondre
esc_textarea() convient au contenu d’une textarea ; esc_attr() correspond aux attributs HTML ; les deux n’impliquent pas la même structure.
Diagnostic avancé
Si des entités s’affichent de façon étrange, rechercher un double échappement préalable ou un contenu déjà encodé au stockage.
Choix d’architecture et déploiement
Dans une interface éditoriale, distinguer traitement de la valeur en entrée et échappement lors du réaffichage. Le contrôle de permissions, le nonce et la validation du formulaire restent nécessaires même si le texte affiché dans textarea est correctement échappé.
Contrôle avant intégration
Vérifier les libellés accessibles, la longueur maximale autorisée et le traitement serveur des données après soumission.
Notions associées
- esc_attr()
- Settings API
- get_option()
