esc_html__()

Définition : esc_html__() traduit une chaîne WordPress puis l’échappe pour une sortie en texte HTML. Elle combine localisation et protection du balisage lorsque le résultat doit apparaître dans un élément.

Comprendre et utiliser

À quoi sert ce terme ?

Elle simplifie les interfaces PHP comprenant des titres et des libellés traduits. Un développeur évite ainsi d’oublier l’échappement au moment de l’impression d’une chaîne provenant d’un catalogue.

Fonctionnement technique

La fonction retourne une valeur localisée et HTML-échappée selon le textdomain fourni. Elle ne doit pas être utilisée pour un attribut, une URL ni un contenu dont le HTML autorisé doit être préservé.

Dans quels contextes l’utiliser ?

Utiliser pour du texte simple dans les panneaux d’administration ou les templates. Pour un attribut comme title, choisir esc_attr__() ; pour du HTML limité, adopter une politique explicite.

Cas concret : ATOOLPHA

ATOOLPHA souhaite afficher le titre « Ressources techniques » dans une section de son site en conservant la compatibilité avec des langues supplémentaires.

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
echo '<h2>' . esc_html__( 'Ressources techniques', 'atoolpha' ) . '</h2>';

Décryptage de l’exemple

Une seule fonction demande la traduction et protège le résultat pour être inséré comme texte du h2. Le textdomain atoolpha doit correspondre au catalogue chargé par l’extension ou le thème.

Résultat attendu

Le titre s’affiche dans la locale active si la traduction existe ; sinon il reprend la chaîne de référence.

Exercice pratique et vérification

Tester une traduction contenant une esperluette et des chevrons, puis comparer le HTML final à une sortie avec __() seule.

Précautions et limites

Un résultat déjà échappé ne doit pas être échappé une deuxième fois sans nécessité. Pour les textes contenant une mise en forme HTML permise, utiliser un autre traitement adapté.

À ne pas confondre

esc_html__() retourne une chaîne traduite prête au texte HTML ; esc_html_e() traduit et imprime directement ; __() retourne une traduction sans échappement.

Diagnostic avancé

Si le navigateur montre des entités telles que &amp;amp;, rechercher un double échappement ou un catalogue contenant des entités déjà encodées.

Choix d’architecture et déploiement

La famille esc_*__() doit être choisie selon le contexte final du texte, et non pour raccourcir le code. L’accessibilité, les traductions longues et les caractères spéciaux doivent être testés dans l’interface avant toute publication publique.

Contrôle avant intégration

Contrôler le contexte de sortie, la locale active, le domaine de traduction et l’absence de double encodage.

Notions associées

  • __()
  • esc_html()
  • @wordpress/i18n

Références officielles

Bouton retour en haut de la page