web-dev-qa-db-fra.com

Obtenir le contenu de la page de blog

J'ai une page qui est assignée comme "Blog". Ce que je voudrais autoriser, c’est que l’utilisateur ajoute du contenu à cette page, puis l’affiche avant que les articles ne s'affichent sur index.php. Je pensais que je pouvais le faire en utilisant cette méthode:

<?php 
    $blog = get_option('page_for_posts');
    echo apply_filters('the_content', get_the_content($blog)); 
?>

Pour une raison quelconque, il est décidé de tirer le premier message au lieu de tirer le contenu de la page. Est-ce un bug ou existe-t-il une autre méthode pour extraire le contenu de la page de blog?

1
Howdy_McGee

Vous utilisez get_the_content() false, il ne peut pas prendre d'identifiant, ce que get_option('page_for_posts') renvoie, et récupère généralement le contenu de la publication en cours dans la boucle, dans laquelle elle doit être utilisée.

Pour obtenir le contenu réel de cette page, vous pouvez faire:

$page_for_posts_id = get_option( 'page_for_posts' );
$page_for_posts_obj = get_post( $page_for_posts_id );
echo apply_filters( 'the_content', $page_for_posts_obj->post_content );

Ou:

$page_for_posts_id = get_option('page_for_posts');
echo get_post_field( 'post_content', $page_for_posts_id );
4
Nicolai