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()
