Respuestas:
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_filters
si 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
.
do_shortcode
raw content
publicación. Cualquier shortcode incrustado en la publicación no será procesado. así que lo estamos haciendo nosotros mismos condo_shortcode
apply_filters( 'the_content', $content );
, de esta manera, todos los filtros que se aplican a me the_content()
gusta wpautop
y se aplica el controlador de shortcode $content
. ;-). Tenga en cuenta el pluralfilters
apply_filters
lugar de do_shortcode
tener sentido. Pero el uso apply_filter
se basa únicamente en su decisión medioambiental. Déjame actualizar mi respuesta también. Muchas gracias por su atención en la comunidad @PieterGoosen
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
)
);
$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);
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;
get_page()
se deprecia
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