web-dev-qa-db-ja.com

ブログページからコンテンツを取得する

"Blog"として割り当てられているページがあります。私が許可したいのは、投稿がindex.phpに表示される前に、ユーザーがこのページにコンテンツを追加してから表示することです。私は私がこの方法を使ってそれをすることができるのが常であったと思いました:

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

何らかの理由で、実際にページのコンテンツを取得するのではなく、最初の投稿を取得することにしました。これはバグなのか、それともブログページのコンテンツを取得する別の方法がありますか?

1
Howdy_McGee

get_the_content() は間違っています。IDを取ることはできません。これはget_option('page_for_posts')が返すもので、通常は現在の投稿の内容をそれを使用する必要があります。

そのページの実際のコンテンツを取得するには、次のようにします。

$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 );

または

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