wp_unslash()

Définition : wp_unslash() retire un niveau de barres obliques inverses ajoutées aux valeurs par les mécanismes WordPress. Elle s’emploie notamment lors de la lecture de données issues de requêtes superglobales.

Terminologie

Terme officiel : wp_unslash()

Autres appellations : Retrait des slashes WordPress

À quoi cela sert

Elle empêche de stocker par erreur des antislashs supplémentaires lorsque WordPress a appliqué des slashes à des valeurs de formulaire.

Comment cela fonctionne

WordPress applique historiquement un traitement de slashing à certaines entrées globales. La fonction retire un niveau de ce traitement avant qu’une donnée soit validée et nettoyée selon sa nature.

Dans quel contexte l’utiliser

À utiliser lorsque l’on lit explicitement des valeurs soumises dans $_POST ou $_GET à l’intérieur d’un traitement autorisé.

Exemple concret

Un éditeur saisit un titre contenant une apostrophe ; la chaîne doit être lue puis nettoyée avant stockage.

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
// Extrait d’un traitement déjà protégé par nonce et capacité.
if ( isset( $_POST['atoolpha_titre'] ) &&
     is_string( $_POST['atoolpha_titre'] ) ) {
    $brut = wp_unslash( $_POST['atoolpha_titre'] );
    $titre = sanitize_text_field( $brut );
    // Stocker ensuite seulement dans le contexte autorisé.
}

Explication pas à pas de l’exemple

1. La présence et le type du champ sont contrôlés. 2. wp_unslash() retire les barres d’échappement supplémentaires. 3. sanitize_text_field() nettoie la valeur. 4. L’extrait ne déclenche aucune écriture.

Résultat attendu

Le titre est disponible sous une forme textuelle propre pour une validation métier ou une sauvegarde contrôlée.

Mise en pratique guidée

Soumettre un champ d’administration contenant guillemets, apostrophes et antislashs dans un environnement de test. Comparer la valeur reçue dans $_POST, puis celle obtenue après wp_unslash() et nettoyage. Vérifier une seule fois la transformation : plusieurs suppressions successives peuvent altérer une valeur dont les antislashs étaient légitimes.

Précautions et limites

Ne pas faire wp_unslash() plusieurs fois sur la même valeur ni l’appliquer sans raison à des données déjà normalisées. Vérifier les tableaux avant les fonctions destinées aux chaînes.

À ne pas confondre

wp_unslash() retire des slashes ; stripslashes() appartient à PHP ; sanitize_text_field() nettoie ensuite le champ.

Termes associés

  • sanitize_text_field()
  • update_post_meta()

Références officielles

Bouton retour en haut de la page