最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

options - Get Content From Blog Page

programmeradmin0浏览0评论

I have a page that is assigned as the "Blog". What I'd like to allow is the user to add content to this page then display it before the posts show up on index.php. I thought I used to be able to do it using this method:

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

For some reason it is deciding to pull the first post instead of actually pulling the page content. Is this a bug or is there another method to pull the blog page content?

I have a page that is assigned as the "Blog". What I'd like to allow is the user to add content to this page then display it before the posts show up on index.php. I thought I used to be able to do it using this method:

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

For some reason it is deciding to pull the first post instead of actually pulling the page content. Is this a bug or is there another method to pull the blog page content?

Share Improve this question asked Oct 2, 2014 at 14:41 Howdy_McGeeHowdy_McGee 20.9k24 gold badges91 silver badges177 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 11

You are using get_the_content() wrong, it can't take a ID, which is what get_option('page_for_posts') does return, and generally gets the content of the current post inside the loop, in which it has to be used.

To get the actual content of that page you can do:

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

Or:

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

With the new WP editor that uses blocks the second code block in the accepted answer won't render the blocks. To get them to render use the following.

$page_for_posts_id = get_option( 'page_for_posts' );
echo apply_filters( 'the_content', get_post_field( 'post_content', $page_for_posts_id ) );

The first code-block in the accepted answer will still work.

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论