WordPress : Problème d’échappement de texte contenant des balises HTML
Je travaille sur un thème et lorsque j’utilise le plugin NS Theme Check pour vérifier mon thème pour les erreurs et les avertissements, je reçois beaucoup de ces avertissements
AVERTISSEMENT On s’attend à ce que la prochaine chose soit une fonction d’échappement (voir Codex pour ‘Validation des données’)
Je sais exactement que j’ai besoin d’échapper aux données avant de pouvoir les utiliser dans n’importe quel code HTML. Mais c’est là que réside mon problème. Dans de nombreux scénarios, la chaîne se compose de html et de variables (variables déjà échappées). Exemple serait
echo get_category_parents($ID, TRUE, ' </li>', FALSE);
Le retour get_category_parents()
<a href="link_to_category">Catgeory</a>
Maintenant, quand j’essaie d’échapper à toute la ligne comme
echo esc_html(get_category_parents($ID, TRUE, ' </li>', FALSE),'default');
L’ensemble du balisage html est traité comme une chaîne. qui n’est pas reconnu comme un balisage html valide par un navigateur.
Et ci-dessus est juste un scénario. Il existe de nombreux scénarios de ce type. Quel pourrait être un moyen possible de gérer une telle situation. Merci
Solution n°1 trouvée
Pour échapper au contenu html, vous pouvez utiliser wp_kses
la fonction.
$allowed = array(
'li' => array(),
'a' => array(
'href' => true,
),
);
echo wp_kses('<li><a href="#" target="_blank">Category</a></li>', $allowed);
Si vous ne souhaitez pas passer le tableau autorisé, vous pouvez utiliser le tableau WordPress par défaut pour le contenu de la publication qui est utilisé dans wp_kses_post
la fonction.
echo wp_kses_post('<li><a href="#" target="_blank">Category</a></li>');
0 commentaire