Extrait de la Guide du développeur WordPress:
Sur Échapper à la sortie consiste à sécuriser les données de sortie en supprimant les données/caractères indésirables, tels que les balises HTML ou de script erronées. Ce mécanisme contribue à la sécurisation des données avant le rendu à l'utilisateur final.
WordPress contient de nombreuses fonctions d'aide que vous pouvez utiliser pour les scénarios les plus courants.
Faites bien attention à ce que fait chaque fonction, car certaines suppriment le HTML alors que d'autres l'autorisent. Vous devriez utiliser la fonction la plus adaptée au contenu et au contexte que vous souhaitez éditer. La fonction d'échappement doit toujours être utilisée pendant la sortie (php echo), pas avant.
Aperçu des fonctions d'échappement
esc_attr()
Utilisé pour tout le reste qui est affiché dans l'attribut d'un élément HTML.
esc_html()
Utilisé chaque fois qu'un élément HTML inclut une section de données à afficher (supprimé html).
esc_js()
A utiliser pour Inline-Javascript.
esc_textarea()
Pour encoder le texte à utiliser dans un élément textarea.
esc_url()
Utilisation pour toutes les URL, y compris celles contenues dans les attributs src et href d'un élément HTML.
esc_url_raw()
Utilisé lorsqu'une URL est enregistrée dans la base de données ou dans d'autres cas où des URL non codées sont nécessaires.
wp_kses()
Utilisation pour tous les éléments HTML non fiables (texte de contribution, texte de commentaire, etc.)
wp_kses_post()
Version alternative de wp_kses(), qui autorise automatiquement tout le contenu HTML autorisé dans les messages.
wp_kses_data()
Version alternative de wp_kses(), qui n'autorise que le code HTML autorisé dans les commentaires de posts.
Garantir le multilinguisme lors de l'escapage
Si la sortie est effectuée comme dans l'exemple ci-dessous, nous nous assurons que
- conserver les phrases (pas de rupture de phrase)
- une séparation correcte est assurée.
- la possibilité est offerte de disposer différemment les liens de contact et les liens de messagerie (ou quelque chose de similaire) au sein de la phrase traduite.
// Exemple url (pourrait par exemple provenir d'une saisie utilisateur non sécurisée via un formulaire).
$contact_url = 'https://www.example.com/contact/' ;
// escaper $contact_url
$contact_url = esc_url( $contact_url ) ;
// Exemple d'adresse e-mail (pourrait par exemple provenir d'une saisie utilisateur non sécurisée via un formulaire.)
$contact_email = 'info@mydomain.com' ;
// escaping, sanitizing & masquer $contact_email.
// Oui, il faut sanitizer et escaper l'adresse e-mail même si on utilise la fonction antispambot() function
$contact_email = esc_url( sprintf( 'mailto:%s', antispambot( sanitize_email( $contact_email ) ) ), array( 'mailto' ) ) ;
esc_html_e( 'Dear guest, we have not found any details regarding your request.', 'text-domain' ) ;
echo "<br><br>" ;
printf(
esc_html__( 'Veuillez nous contacter par le biais de notre %1$s ou via %2$s.', 'text-domain' ),
sprintf(
'<a href="/fr/%s/">%s</a>',
$contact_url,
esc_html__( 'Page de contact', 'domaine texte' )
),
sprintf(
'<a href="/fr/%s/">%s</a>',
$contact_email,
esc_html__( 'Email', 'text-domain' )
)
) ;
Le traducteur dispose ainsi de deux phrases complètes et de deux mots simples à traduire. Un traducteur ne doit donc s'occuper que des lignes simples suivantes (tandis que le CODE se charge du reste) :
esc_html_e( 'Cher visiteur, nous n'avons pas trouvé de détails concernant votre demande.', 'text-domain' ) ;
// ...
esc_html__( 'Please contact us through our %1$s or via %2$s', 'text-domain' )
// ...
esc_html__( 'Page de contact', 'text-domain' )
// ...
esc_html__( 'Email', 'text-domain' )
Pour plus d'informations, cliquez ici : Multilinguisme pour les thèmes WordPress (eng) et Multilinguisme pour les plugins (eng)
Si vous avez des questions, n'hésitez pas à utiliser la fonction de commentaire en bas de cette page.
0 commentaires