Ich habe einen Beitragsinhalt (html) wie diesen:
<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>
Wenn ich echo $post['post_content'];
oder echo do_shortcode($post['post_content']);
verwende, wird der Inhalt gut angezeigt. Bei Verwendung von echo apply_filters('the_content', $post['post_content']);
werden einige der HTML-Tags aus dem Beitrag entfernt. Die Ausgabe sieht folgendermaßen aus:
<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.
Wie erhalte ich den genauen HTML-Inhalt des Posts mithilfe des Inhaltsfilters?
Sie sollten kein willkürliches HTML in den Inhalt der Posts einfügen, sondern Shortcodes verwenden! Shortcodes waren für diese Situation vorgesehen.
Ansonsten treten 2 Probleme auf:
wp_kses_post
bei der AusgabeAlle diese Aktionen werden aus Sicherheitsgründen durchgeführt. Inhalte sollten nur Inhalte enthalten, kein Layout oder Benutzeroberfläche. Wenn Sie diese benötigen, verwenden Sie Widgets oder fügen Sie Shortcodes in Ihre Inhalte ein.