wp_kses_post()

Définition : wp_kses_post() filtre un contenu HTML avec les balises et attributs autorisés pour le contenu d’articles WordPress. Elle permet de conserver un balisage limité sans accepter tout le HTML fourni.

Terminologie

Terme officiel : wp_kses_post()

Autres appellations : Filtrage HTML autorisé

À quoi cela sert

Elle aide à afficher du texte enrichi qui peut contenir des paragraphes, des liens ou des éléments autorisés, sans le traiter comme du code HTML entièrement fiable.

Comment cela fonctionne

La fonction applique les règles KSES adaptées au contexte post. Elle retire les éléments non autorisés selon les règles WordPress, qui peuvent dépendre des filtres et du contexte.

Dans quel contexte l’utiliser

À utiliser lorsqu’un champ est explicitement prévu pour contenir du HTML autorisé, par exemple une note de présentation riche.

Exemple concret

Une fiche technique affiche un commentaire enrichi contenant des mots importants en gras, tout en évitant les scripts fournis dans la donnée.

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
$note = '<strong>Important</strong> : <script>alert(1)</script>';
echo '<div class="atoolpha-note">'
    . wp_kses_post( $note )
    . '</div>';

Explication pas à pas de l’exemple

1. La note comporte une balise de mise en forme et un script fictif. 2. wp_kses_post() ne conserve que les éléments HTML admis. 3. La sortie est placée dans un conteneur prévu.

Résultat attendu

Le terme « Important » peut rester en gras, mais le contenu de la balise script ne doit pas être exécuté.

Mise en pratique guidée

Créer un contenu de test avec un paragraphe, un lien, du gras et une balise script fictive. Appliquer wp_kses_post() et inspecter le HTML résultant : la mise en forme autorisée peut rester, tandis que les éléments interdits sont filtrés. Comparer avec esc_html(), qui traite toutes les balises comme du texte.

Précautions et limites

La liste des éléments acceptés n’est pas une politique d’autorisation métier. Toujours traiter les permissions de publication et éviter de présenter du HTML non fiable sans filtrage.

À ne pas confondre

wp_kses_post() autorise un HTML limité ; esc_html() affiche tout comme texte ; wp_strip_all_tags() retire les balises.

Termes associés

  • esc_html()
  • sanitize_text_field()

Références officielles

Bouton retour en haut de la page