it-swarm-eu.dev

Získejte post_content pomocí značek <p>?

Snažím se získat obsah příspěvku určitého příspěvku

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

To však načte obsah bez přerušení řádků. Všiml jsem si, že je to proto, že všechno vynechává

tagy.

Jak mohu načíst obsah pomocí

tagy, jak to vidím na stránce příspěvku a také na kartě editoru příspěvků?

15
Lisandro Vaccaro

Obě odpovědi jsou zatím správné, ale důkladnější odpověď je oprávněná.

Použijete-li toto:

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

používáte jednu funkci, která přidává tagy odstavců k odeslání obsahu. wpautop() je jedna z mnoha funkcí (včetně funkcí pluginů v době), která zavěsí na the_content, takže pokud to uděláte:

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

dostáváte obsah příspěvku spuštěný přes všechny filtry the_content, které ve výchozím nastavení obsahuje wpautop().

Pokud jste ve smyčce, můžete to udělat takto:

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

což je v podstatě obal pro druhý úryvek kódu, ale samozřejmě je to trochu hezčí. Aktualizace 1. září 2018: revidováno na základě komentáře . Props @timmb.

Obecně bych řekl, že upřednostňovaný "správný způsob", jak to udělat, je od posledního do prvního, protože použití funkce jádra WP by mělo umožnit více zpětné kompatibility (teoreticky, přinejmenším). Jediným dalším rozhodnutím, které je třeba učinit, je, zda chcete povolit WordPressu a zásuvným modulům také upravovat obsah příspěvku. Pokud tomu tak je, určitě použijte druhou nebo třetí možnost.

25
mrwweb

Bylo nalezeno řešení:

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

Druhá metoda, jak se dostat post obsah s p tag je

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