wake-up-neo.net

Der Filter 'the_content' entfernt HTML-Tags aus dem Inhalt des Beitrags

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?

1
sariDon

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:

  • Filter entziehen sich Ihrem Inhalt über den wp_kses_post bei der Ausgabe
  • TinyMCE filtert/mangelt/streift Tags, wenn Sie den visuellen Editor verwenden, selbst für den kleinsten Moment

Alle 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.

1
Tom J Nowell