J'ai un contenu de publication (html) comme celui-ci:
<div id="home_tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
<li><a href="#tabs-2">Proin dolor</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
<p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus.</p>
<p><a class="jqbut" href="#">read more</a></p>
</div>
<div id="tabs-2">Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc.</div>
<div id="tabs-3">Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti.</div>
</div>
Lorsque j'utilise echo $post['post_content'];
ou echo do_shortcode($post['post_content']);
, le contenu s'affiche correctement. Mais lorsque vous utilisez echo apply_filters('the_content', $post['post_content']);
, certaines des balises HTML sont supprimées de la publication. La sortie est comme ça:
<a href="#tabs-1">Nunc tincidunt</a>
<a href="#tabs-2">Proin dolor</a>
<a href="#tabs-3">Aenean lacinia</a>
<p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus.</p>
<p><a class="jqbut" href="#">read more</a></p>
Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc.
Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti.
Comment obtenir le contenu HTML exact de la publication en utilisant le filtre de contenu?
Vous ne devriez pas mettre du HTML arbitraire dans le contenu d'un post, utilisez plutôt des codes courts! Les codes courts étaient destinés à cette situation.
Sinon, vous faites face à 2 problèmes:
wp_kses_post
en sortieToutes ces opérations sont effectuées à des fins de sécurité, le contenu ne doit contenir que du contenu, pas de présentation ni d’interface utilisateur. Si vous en avez besoin, utilisez des widgets ou insérez des codes courts dans votre contenu.