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?

m3tsys
fuente

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;
Bainternet
fuente
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);
realmag777
fuente
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.

Ranuka
fuente
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.

DigitalDesignDj
fuente