it-swarm.com.de

Post_content mit <p> -Tags erhalten?

Ich versuche, den Inhalt eines bestimmten Beitrags abzurufen

$post = get_post(/* id */);
$content = $post->post_content;

Dadurch wird jedoch der Inhalt ohne Zeilenumbrüche abgerufen. Mir ist aufgefallen, dass alles weggelassen wird

stichworte.

Wie kann ich den Inhalt mit dem abrufen?

tags, wie ich sie auf der Post-Seite und auch auf der Text-Registerkarte des Post-Editors sehe?

15

Beide Antworten sind bis jetzt richtig, aber eine gründlichere Antwort scheint gerechtfertigt.

Wenn Sie dies verwenden:

$content = wpautop( $post->post_content );

sie wenden die einzige Funktion an, mit der Absatz-Tags zum Beitragsinhalt hinzugefügt werden. wpautop() ist eine von vielen Funktionen (einschließlich gelegentlicher Plug-in-Funktionen), die sich mit the_content verbinden. Wenn Sie dies also tun, gehen Sie wie folgt vor:

$content = apply_filters('the_content', $post->post_content);

sie erhalten den Post-Inhalt durch alle Filter in the_content, die standardmäßig wpautop() enthalten.

Schließlich können Sie, wenn Sie auf dem Laufenden sind, Folgendes tun:

$content = apply_filters( 'the_content', get_the_content() );

das ist im Wesentlichen ein Wrapper für das zweite Code-Snippet, aber natürlich sieht es ein bisschen besser aus. Update 1. September 2018: Überarbeitet basierend auf Kommentar . Requisiten @timmb.

Im Allgemeinen würde ich sagen, dass der bevorzugte "richtige Weg" dazu vom Letzten zum Ersten ist, da die Verwendung einer Kernfunktion WP (zumindest theoretisch) mehr Abwärtskompatibilität ermöglichen sollte. Die einzige andere Entscheidung, die Sie dann treffen müssen, ist, ob Sie WordPress und Plugins erlauben möchten, auch den Inhalt der Posts zu ändern. Verwenden Sie in diesem Fall unbedingt die 2. oder 3. Option.

25
mrwweb

Die Lösung gefunden:

$content = apply_filters('the_content', $post->post_content);
5

Die zweite Methode zum Abrufen von Post-Inhalten mit dem p-Tag ist

echo wpautop( $post->post_content );
2
DINESH BHIMANI