Get post_content with p tags?

12

Estoy intentando recuperar el contenido de una publicación específica

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

Sin embargo, esto recupera el contenido sin saltos de línea. Noté que esto es porque omite todo

etiquetas.

¿Cómo puedo recuperar el contenido con el

etiquetas, como las veo en la página de publicación y también en la pestaña de texto del editor de publicación?

    
pregunta Lisandro Vaccaro 16.10.2014 - 14:17

3 respuestas

22

Hasta ahora, ambas respuestas son correctas, pero parece justificada una respuesta más completa.

Si usas esto:

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

estás aplicando la única función que agrega etiquetas de párrafo al contenido de la publicación. wpautop() es una de las muchas funciones (incluidas las funciones de los complementos a veces) que se engancha en the_content , así que si haces esto:

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

está obteniendo que el contenido de la publicación se ejecute a través de cualquier filtro en the_content que incluye wpautop() de forma predeterminada.

Finalmente, si estás en el circuito, puedes hacer esto:

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

que es esencialmente una envoltura para el segundo fragmento de código, pero, por supuesto, tiene un aspecto más agradable. Actualización 1 de septiembre de 2018: Revisado basado en comment . Props @timmb.

En general, diría que la "forma correcta" preferida para hacer esto es desde la última hasta la primera, ya que el uso de una función central de WP debería permitir una mayor compatibilidad con versiones anteriores (teóricamente, al menos). La única otra decisión que tomar luego es si desea permitir que WordPress y los complementos también modifiquen el contenido de la publicación. Si ese es el caso, definitivamente use la segunda o tercera opción.

    
respondido por el mrwweb 16.10.2014 - 17:11
4

Encontré la solución:

$content = apply_filters('the_content', $post->post_content);
    
respondido por el Lisandro Vaccaro 16.10.2014 - 14:21
1

El segundo método para obtener contenido de la publicación con la etiqueta p es

echo wpautop( $post->post_content );
    
respondido por el DINESH BHIMANI 16.10.2014 - 16:04

Lea otras preguntas en las etiquetas