sanitize_text_field()
Définition : sanitize_text_field() nettoie une chaîne de caractères destinée à être traitée comme un champ texte simple dans WordPress. Elle retire notamment certains contenus HTML et normalise des caractères non adaptés.
Terminologie
Terme officiel : sanitize_text_field()
Autres appellations : Assainissement d’un champ texte
À quoi cela sert
Elle évite de stocker ou de manipuler du balisage inattendu dans les champs où seul du texte est attendu : nom, référence, intitulé ou libellé de configuration.
Comment cela fonctionne
La fonction traite une chaîne et la renvoie nettoyée. Elle ne vérifie pas les autorisations et ne remplace ni une validation métier ni l’échappement au moment de l’affichage.
Dans quel contexte l’utiliser
À utiliser après avoir récupéré une donnée textuelle externe et avant de l’enregistrer comme texte brut, notamment dans les formulaires d’administration.
Exemple concret
Un formulaire de classification reçoit une référence contenant accidentellement du HTML ; l’extension ne souhaite conserver que du texte.
Exemple de code commenté
Extrait pédagogique PHP pour extension WordPress : adapter au contexte et tester sur un environnement de développement avant tout usage.
<?php
// Valeur de démonstration, sans lecture directe d’une requête.
$source = ' <strong>Référence</strong> DOC-17 ';
$propre = sanitize_text_field( $source );
echo esc_html( $propre ); // Sortie protégée aussi.
Explication pas à pas de l’exemple
1. La valeur contient des balises d’exemple. 2. sanitize_text_field() supprime les éléments non adaptés au texte brut. 3. esc_html() protège ensuite l’insertion dans le document HTML.
Résultat attendu
Le visiteur voit un libellé nettoyé, sans interprétation des balises fournies dans la chaîne de départ.
Mise en pratique guidée
Comparer trois entrées : une référence simple, un texte contenant des balises et une valeur multilignes. Afficher le résultat nettoyé avec esc_html(). Pour les champs dont les retours à la ligne sont indispensables, vérifier la différence avec sanitize_textarea_field(). Ce contrôle évite d’employer une même méthode de nettoyage pour des contenus de natures différentes.
Précautions et limites
Utiliser sanitize_textarea_field() pour un texte multilignes lorsque les retours à la ligne doivent être préservés. Les champs HTML autorisés exigent un traitement différent.
À ne pas confondre
Nettoyage à l’entrée et échappement à la sortie sont deux étapes distinctes ; sanitize_text_field() ne remplace pas esc_html().
Termes associés
- wp_unslash()
- esc_html()
- sanitize_key()
