Obtenga contenido de publicación de WordPress por ID de publicación


141

¿Cómo puedo obtener contenido de publicación de WordPress por ID de publicación?

Respuestas:


177

Tan simple como se pone

$my_postid = 12;//This is page id or post id
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;

85
Taquigrafía para un campo específico:$content = get_post_field('post_content', $my_postid);
— Rarst

44
@Bainternet Tengo curiosidad aquí ... ¿qué hace la parte $content = str_replace(']]>', ']]>', $content);? ¿Cuál es el propósito de eso allí?
— Promedio Joe

1
@AverageJoe su búsqueda básica y reemplazar. Cuando se utiliza the_content (), el contenido se filtra. Como en el ejemplo anterior el contenido se recuperó directamente, el autor ha utilizado la búsqueda y el reemplazo para que sea seguro.
— Harish Chouhan

2
quizás también necesites do_shortcode () como$content = do_shortcode(get_post_field('post_content', $my_postid));
— cyptus

¿Hay alguna forma de preservar el "more_link"?
— user2128576

126
echo get_post_field('post_content', $post_id);

61
mejor hacerlo así echo apply_filters('the_content', get_post_field('post_content', $post_id));. Por ejemplo, cuando usa qTranslate, su solución no sería suficiente.
— Karel Attl

44
Esta es la mejor respuesta si el objetivo es obtener el contenido de la publicación tal como está en la página de edición de WordPress.
— mcont

Sin el código de @KarelAttl, los saltos de línea faltan. Con el código apply_filters funcionó perfectamente.
— Alexander Taubenkorb

1
apply_filterses una buena opción, pero no era la correcta para mi propósito actual. Es bueno tener ambas opciones.
— KnightHawk

25

Otra forma de obtener un contenido de publicación de WordPress por ID de publicación es:

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

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

Método 01 (el crédito va a 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 (el crédito va a realmag777 ):

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

Método 03:

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

Lea la ¿Cuál es la forma mejor / eficiente de obtener contenido de WordPress por ID de publicación y por qué? pregunta para tener una idea sobre cuál debe usar de los tres anteriores.


0

Si necesita más de una publicación, úsela get_posts(). Deja la consulta principal sola y devuelve una serie de publicaciones que es fácil de recorrer.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.