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.