sanitize_key()
Définition : sanitize_key() transforme une valeur en clé WordPress normalisée. Elle conserve les caractères compatibles avec les identifiants simples et élimine ceux qui ne correspondent pas aux conventions admises.
Terminologie
Terme officiel : sanitize_key()
Autres appellations : Nettoyage des clés
À quoi cela sert
Elle évite l’utilisation de caractères imprévus dans des identifiants de filtres, des paramètres techniques ou des clés internes issus de données contrôlées.
Comment cela fonctionne
La fonction met la chaîne en minuscules puis supprime les caractères qui ne sont pas des lettres ASCII, chiffres, tirets ou soulignements, sous réserve de filtres WordPress.
Dans quel contexte l’utiliser
À appliquer lorsqu’une valeur doit être une clé technique et non un libellé destiné au public.
Exemple concret
Un écran d’administration reçoit un type d’affichage et doit le comparer à une liste d’identifiants reconnus.
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
$entree = 'Mode_Vitrine!';
$cle = sanitize_key( $entree );
$autorisés = array( 'mode_vitrine', 'mode_liste' );
if ( in_array( $cle, $autorisés, true ) ) {
// Utiliser uniquement une valeur explicitement admise.
$mode = $cle;
}
Explication pas à pas de l’exemple
1. Une chaîne est ramenée à une clé compatible. 2. Le caractère ! est supprimé. 3. Une liste blanche décide si cette clé est effectivement autorisée. 4. Aucune fonctionnalité n’est exécutée par la seule normalisation.
Résultat attendu
Une entrée de type Mode_Vitrine! devient mode_vitrine, utilisable seulement si la liste des modes autorisés la contient.
Mise en pratique guidée
Tester une suite d’identifiants comme Mode_Vitrine!, mode-liste et une chaîne comprenant des accents. Examiner les clés retournées, puis appliquer une validation par liste blanche. La comparaison démontre que deux entrées distinctes peuvent devenir proches après normalisation et qu’un identifiant normalisé n’est pas automatiquement un identifiant autorisé.
Précautions et limites
La normalisation ne signifie pas qu’une valeur devient sûre pour n’importe quel usage. Garder une validation par liste blanche pour les options fonctionnelles.
À ne pas confondre
sanitize_key() normalise une clé ; sanitize_text_field() traite du texte libre ; sanitize_title() construit plutôt des slugs.
Termes associés
- sanitize_text_field()
- register_post_meta()
