<p> etiketlerini çıkarmadan 'post_content' nasıl edinilir?


20

Belirli bir yazının posta içeriğini almaya çalışıyorum:

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

Bununla birlikte, içeriği satır sonları olmadan alır ve tüm <p>etiketleri atlar .

<p>Etiketleri çıkarmadan yazı içeriğini almanın doğru yolu nedir (yazı sayfasında veya yazı editörü " Metin " sekmesinde gösterildiği gibi)?

Yanıtlar:


30

Her iki cevap da doğrudur, ancak daha kapsamlı bir cevap gereklidir.

Bunu kullanırsanız:

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

içerik yayınlamaya paragraf etiketleri ekleyen tek işlevi uyguluyorsunuz. wpautop(), zamana bağlı birçok işlevden (bazen eklenti işlevleri dahil) biridir the_content, bu nedenle bunu yaparsanız:

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

gönderi içeriğini varsayılan olarak the_contentiçeren filtrelerden geçiriyorsunuz wpautop().

Son olarak, döngüde iseniz, bunu yapabilirsiniz:

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

Bu aslında ikinci kod snippet'i için bir sarıcıdır, ancak elbette biraz daha hoş görünüyor. Güncelleme 1 Eylül 2018: dayanarak Revize comment . Sahne @ timmb.

Genel olarak, bunu yapmak için tercih edilen "doğru yolun" sondan ilke olduğunu söyleyebilirim, çünkü bir çekirdek WP işlevi kullanmak daha geriye dönük uyumluluk sağlamalıdır (en azından teorik olarak). Daha sonra verilecek tek karar WordPress ve eklentilerin yazı içeriğini de değiştirmesine izin vermek isteyip istemediğinizdir. Bu durumda, kesinlikle 2. veya 3. seçenekleri kullanın.


1
Bence bu son çözüm yanlış. Gönderen codex.wordpress.org/Function_Reference/get_the_content : "the_content () elde edilen önemli bir fark get_the_content () 'the_content' filtre ile içerik geçmez" dedi. Bu, doğru yaklaşımın olacağını göstermez $content = apply_filters('the_content', get_the_content);mi?
Tim MB


4

Posta etiketi ile p etiketi almak için ikinci yöntem

echo wpautop( $post->post_content );
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.