Obtener contenido de publicación por ID

10

¿Cómo puedo obtener el contenido de una publicación por ID de publicación? Traté get_page('ID');de mostrar contenido pero no funciona.

viral m
fuente
1
Vota a favor ya que ni siquiera intentaste leer los documentos get_page(). Ha sido desaprobado hace mucho tiempo. Además, hay una cantidad ilimitada de recursos en el sitio con respecto a este problema, incluso Google tiene toneladas de información sobre esto
Pieter Goosen el

Respuestas:

17

Puedes hacerlo de varias maneras. Los siguientes son los mejores dos modos.

$post_id = 5// example post id
$post_content = get_post($post_id);
$content = $post_content->post_content;
echo do_shortcode( $content );//executing shortcodes

Otro método

$content = get_post_field('post_content', $post_id);
echo do_shortcode( $content );//executing shortcodes

Después de la sugerencia de Pieter Goosen apply_filters.

Puede usarlo apply_filterssi desea que otros plugins filtren el contenido. Esto elimina la necesidad de usardo_shortcode

Ejemplo

$post_id = 5// example post id
$post_content = get_post($post_id);
$content = $post_content->post_content;
echo apply_filters('the_content',$content);
 //no need to use do_shortcode, but content might be filtered by other plugins.

Si no desea permitir que otros complementos filtren este contenido y necesita la función de código corto, continúe con do_shortcode.

Si no quieres un shortcode también, solo juega con el post_content.

WPTC-Troop
fuente
Me pregunto por qué lo estás usandodo_shortcode
Pieter Goosen el
Hola gracias por preguntar @PieterGoosen Como estamos recibiendo la raw contentpublicación. Cualquier shortcode incrustado en la publicación no será procesado. así que lo estamos haciendo nosotros mismos condo_shortcode
WPTC-Troop
2
Una mejor manera sería utilizar apply_filters( 'the_content', $content );, de esta manera, todos los filtros que se aplican a me the_content()gusta wpautopy se aplica el controlador de shortcode $content. ;-). Tenga en cuenta el pluralfilters
Pieter Goosen el
1
Sí, usar en apply_filterslugar de do_shortcodetener sentido. Pero el uso apply_filterse basa únicamente en su decisión medioambiental. Déjame actualizar mi respuesta también. Muchas gracias por su atención en la comunidad @PieterGoosen
WPTC-Troop
0

Voy a dejar aquí otra forma hacky fea que puede ser útil a veces. Por supuesto, siempre se prefieren los métodos que utilizan llamadas API (get_post (), get_the_content (), ...).

global $wpdb;
$post_id = 123; // fill in your desired post ID
$post_content_raw = $wpdb->get_var(
    $wpdb->prepare(
        "select post_content from $wpdb->posts where ID = %d",
        $post_id
    )
);
DrLightman
fuente
0
$id = 23; // add the ID of the page where the zero is
$p = get_page($id);
$t = $p->post_title;
echo '<h3>'.apply_filters('post_title', $t).'</h3>'; // the title is here wrapped with h3
echo apply_filters('the_content', $p->post_content);
Dharmishtha Patel
fuente
1
Por favor, editar su respuesta , y añadir una explicación: ¿por qué podría que resolver el problema?
fuxia
-1

Mediante el uso get_page('ID').

$page_id = 123;  //Page ID
$page_data = get_page($page_id); 
$title = $page_data->post_title; 
$content = $page_data->post_content;
etest
fuente
1
Votado como realmente no trataste de leer la documentación. get_page()se deprecia
Pieter Goosen el