wp_kses()

Définition : wp_kses() filtre une chaîne HTML selon des balises et attributs autorisés. Cette fonction WordPress est utilisée pour préserver un sous-ensemble de mise en forme tout en retirant des constructions interdites.

Comprendre et utiliser

À quoi sert ce terme ?

Elle permet d’afficher des contenus partiellement enrichis, comme du texte en emphase et des liens, sans accepter arbitrairement des éléments HTML actifs. C’est un outil d’échappement adapté au HTML autorisé.

Fonctionnement technique

On lui fournit le texte et une liste explicite de balises/attributs permis ou un contexte reconnu. Le résultat conserve uniquement ce que la politique autorise, indépendamment de la bonne foi du rédacteur.

Dans quels contextes l’utiliser ?

Utiliser lorsque l’interface doit réellement afficher du HTML provenant d’une source contrôlée ou nettoyée. Préférer esc_html() lorsqu’aucune mise en forme HTML n’est nécessaire.

Cas concret : ATOOLPHA

ATOOLPHA accepte dans une courte notice un lien documentaire et du gras, mais pas des images distantes ou des attributs d’événement.

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
$notice = '<strong>Documentation</strong> <a href="https://example.org" onclick="alert(1)">Voir</a>';
$allowed = array(
    'strong' => array(),
    'a' => array( 'href' => true ),
);
echo wp_kses( $notice, $allowed );

Décryptage de l’exemple

Le tableau autorise strong et le href d’un lien. L’attribut onclick n’étant pas admis, il est supprimé. L’URL example.org est fictive et n’implique aucune recommandation de site.

Résultat attendu

La notice conserve le texte en gras et le lien, sans gestionnaire onclick. Le résultat reste limité à la liste de balises autorisées.

Exercice pratique et vérification

Tester une notice avec strong, lien, image et gestionnaire onclick. Observer les éléments retirés et comparer à esc_html().

Précautions et limites

La définition d’une liste trop large ou l’ajout d’attributs dangereux annulerait l’intérêt du filtrage. Éviter de traiter wp_kses() comme une garantie universelle pour tous les contextes de sortie.

À ne pas confondre

wp_kses_post() emploie la politique HTML des contenus WordPress ; wp_kses() accepte une politique personnalisée ; esc_html() transforme le HTML en texte.

Diagnostic avancé

Si un attribut utile disparaît, inspecter la liste autorisée et le contexte, puis confirmer qu’il ne crée pas de surface de script.

Choix d’architecture et déploiement

La politique HTML autorisée est une décision applicative. Garder cette liste courte, documenter la raison de chaque attribut et prévoir des tests couvrant les schémas d’URL et les balises interdites. Pour du texte pur, une sortie avec esc_html() demeure plus simple.

Contrôle avant intégration

Examiner précisément les attributs autorisés et les protocoles URL ; ne jamais élargir une politique HTML juste pour faire disparaître un avertissement.

Notions associées

  • wp_kses_post()
  • esc_html()
  • Validation des données

Références officielles

Bouton retour en haut de la page