Comment puis-je obtenir le contenu d'un message par son identifiant? J'ai essayé get_page('ID');
pour afficher le contenu, mais cela ne fonctionne pas.
Vous pouvez le faire de plusieurs façons. Voici les deux meilleurs moyens.
$post_id = 5// example post id
$post_content = get_post($post_id);
$content = $post_content->post_content;
echo do_shortcode( $content );//executing shortcodes
Une autre méthode
$content = get_post_field('post_content', $post_id);
echo do_shortcode( $content );//executing shortcodes
Après la suggestion de Pieter Goosen sur apply_filters
.
Vous pouvez utiliser apply_filters
si vous souhaitez que le contenu soit filtré par d'autres plugins. Donc, cela élimine le besoin d'utiliser do_shortcode
Exemple
$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 vous ne voulez pas autoriser d'autres plugins à filtrer ce contenu et avez besoin d'une fonction de shortcode, utilisez do_shortcode
.
Si vous ne voulez pas trop de shortcode, jouez simplement avec le post_content
.
$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);
Je vais laisser ici une autre façon laide que vous pourriez trouver utile parfois. Bien sûr, les méthodes qui utilisent des appels d'API sont toujours préférées (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
)
);