Obtener el contenido de una entrada de WordPress por su ID

17 feb 2011, 22:52:31
Vistas: 543K
Votos: 183

¿Cómo puedo obtener el contenido de una entrada de WordPress usando su ID?

0
Todas las respuestas a la pregunta 5
5
216

Tan simple como parece

$my_postid = 12;//Este es el id de la página o el id de la entrada
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
17 feb 2011 23:19:09
Comentarios

Forma abreviada para un campo específico: $content = get_post_field('post_content', $my_postid);

Rarst Rarst
17 feb 2011 23:39:16

@Bainternet Solo tengo curiosidad... ¿qué hace la parte $content = str_replace(']]>', ']]>', $content);? ¿cuál es su propósito allí?

Average Joe Average Joe
4 nov 2013 13:02:56

@AverageJoe es un reemplazo básico de búsqueda. Cuando se usa the_content() el contenido es filtrado. Como en el ejemplo anterior el contenido se recuperó directamente, el autor ha usado el reemplazo de búsqueda para hacerlo seguro.

Harish Chouhan Harish Chouhan
18 mar 2014 11:21:27

tal vez también necesites do_shortcode() como $content = do_shortcode(get_post_field('post_content', $my_postid));

cyptus cyptus
9 mar 2018 15:47:29

¿Hay alguna manera de preservar el "more_link"?

user2128576 user2128576
5 jul 2018 04:46:02
4
158
echo get_post_field('post_content', $post_id); // Muestra el contenido del post
5 oct 2012 16:50:55
Comentarios

mejor hacerlo como echo apply_filters('the_content', get_post_field('post_content', $post_id));. Por ejemplo, cuando se usa qTranslate, tu solución no sería suficiente.

Karel Attl Karel Attl
17 ene 2013 09:10:39

Esta es la mejor respuesta si el objetivo es obtener el contenido de la entrada tal como aparece en la página de edición de WordPress.

mcont mcont
8 ago 2014 16:21:41

Sin el código de @KarelAttl faltaban los saltos de línea. Con el código apply_filters funcionó perfectamente.

Alexander Taubenkorb Alexander Taubenkorb
23 sept 2015 15:23:44

apply_filters es una buena opción, pero no era la adecuada para mi propósito actual. Es bueno tener ambas opciones.

KnightHawk0811 KnightHawk0811
5 nov 2015 20:12:38
0
49

Otra forma de obtener el contenido de una entrada de WordPress por su ID es:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));

Para completar esta respuesta también he añadido el método 01 y el método 02.

Método 01 (crédito para bainternet):

$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);

Método 02 (crédito para realmag777):

$content = get_post_field('post_content', $my_postid);

Método 03:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));

Lee la pregunta ¿Cuál es la mejor/más eficiente forma de obtener contenido de WordPress por ID de entrada y por qué? para tener una idea sobre cuál de los tres métodos anteriores deberías usar.

2 dic 2016 07:15:41
0

A partir de WordPress 5.2.0,

Ahora podemos usar el objeto post o el ID del post en la función get_the_content.

También podemos pasar $more_link_text y $strip_teaser

get_the_content( string $more_link_text = null, bool $strip_teaser = false, WP_Post|object|int $post = null )

Podemos usarlo junto con apply_filters como se muestra a continuación para obtener todos los filtros de the_content

apply_filters( 'the_content', get_the_content(null, false, $post_id)),

Referencia

3 feb 2021 16:30:08
1
-5

Si necesitas más de una entrada, utiliza get_posts(). Esta función no interfiere con la consulta principal y devuelve un array de entradas que es fácil de recorrer en un bucle.

20 nov 2015 23:18:14
Comentarios

Esta respuesta malinterpreta la pregunta

wickywills wickywills
21 abr 2022 09:56:46