Title: Latest Posts block
Last modified: December 24, 2018

---

# Latest Posts block

 *  Resolved [florianwilhelm](https://wordpress.org/support/users/florianwilhelm/)
 * (@florianwilhelm)
 * [7 years, 5 months ago](https://wordpress.org/support/topic/latest-posts-block/)
 * Hi,
 * I am just discovering the new editor and I am pleased to find the possibility
   to add a Latest Posts block in my pages (Widgets > Latest Post). It is a great
   feature that would allow me to drop Latest Posts plug-ins!
 * Problem: it only shows the Post title.
    Does someone know how I could also show
   the Post Thumbnail and Excerpt? It is not possible from the editing interface(
   at least from what I see), but it is probably something possible through php 
   files.
 * Thank you and happy holidays to y’all,
    Florian
    -  This topic was modified 7 years, 5 months ago by [florianwilhelm](https://wordpress.org/support/users/florianwilhelm/).

Viewing 11 replies - 1 through 11 (of 11 total)

 *  Thread Starter [florianwilhelm](https://wordpress.org/support/users/florianwilhelm/)
 * (@florianwilhelm)
 * [7 years, 5 months ago](https://wordpress.org/support/topic/latest-posts-block/#post-11024292)
 * Hi,
    I found the file to edit: In wordpress folder, wp-includes/blocks/latest-
   posts.php
 * I had success putting the post thumbnail but when I try to have the post excerpt,
   it shows the current page excerpt instead of the post’s.
 * I edited only a small part of the code (line 39):
 *     ```
       		$list_items_markup .= sprintf(
       			'<li>
       			<a href="%2$s">%1$s%3$s</a><p>%4$s</p>',
       			get_the_post_thumbnail( $post_id ),
       			esc_url( get_permalink( $post_id ) ),
       			esc_html( $title ), 
       			get_the_excerpt( $post_id )
       		);
       ```
   
 * Here is the complete code (edited by me):
 *     ```
       <?php
       /**
        * Server-side rendering of the <code>core/latest-posts</code> block.
        *
        * @package WordPress
        */
   
       /**
        * Renders the <code>core/latest-posts</code> block on server.
        *
        * @param array $attributes The block attributes.
        *
        * @return string Returns the post content with latest posts added.
        */
       function render_block_core_latest_posts( $attributes ) {
       	$args = array(
       		'numberposts' => $attributes['postsToShow'],
       		'post_status' => 'publish',
       		'order'       => $attributes['order'],
       		'orderby'     => $attributes['orderBy'],
       	);
   
       	if ( isset( $attributes['categories'] ) ) {
       		$args['category'] = $attributes['categories'];
       	}
   
       	$recent_posts = wp_get_recent_posts( $args );
   
       	$list_items_markup = '';
   
       	foreach ( $recent_posts as $post ) {
       		$post_id = $post['ID'];
   
       		$title = get_the_title( $post_id );
       		if ( ! $title ) {
       			$title = __( '(Untitled)' );
       		}
   
       		$list_items_markup .= sprintf(
       			'<li>
       			<a href="%2$s">%1$s%3$s</a><p>%4$s</p>',
       			get_the_post_thumbnail( $post_id ),
       			esc_url( get_permalink( $post_id ) ),
       			esc_html( $title ), 
       			get_the_excerpt( $post_id )
       		);
   
       		if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) {
       			$list_items_markup .= sprintf(
       				'<time datetime="%1$s" class="wp-block-latest-posts__post-date">%2$s</time>',
       				esc_attr( get_the_date( 'c', $post_id ) ),
       				esc_html( get_the_date( '', $post_id ) )
       			);
       		}
       		$list_items_markup .= "</li>\n";
       	}
   
       	$class = 'wp-block-latest-posts';
       	if ( isset( $attributes['align'] ) ) {
       		$class .= ' align' . $attributes['align'];
       	}
   
       	if ( isset( $attributes['postLayout'] ) && 'grid' === $attributes['postLayout'] ) {
       		$class .= ' is-grid';
       	}
   
       	if ( isset( $attributes['columns'] ) && 'grid' === $attributes['postLayout'] ) {
       		$class .= ' columns-' . $attributes['columns'];
       	}
   
       	if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) {
       		$class .= ' has-dates';
       	}
   
       	if ( isset( $attributes['className'] ) ) {
       		$class .= ' ' . $attributes['className'];
       	}
   
       	$block_content = sprintf(
       		'<ul class="%1$s">%2$s</ul>',
       		esc_attr( $class ),
       		$list_items_markup
       	);
   
       	return $block_content;
       }
   
       /**
        * Registers the <code>core/latest-posts</code> block on server.
        */
       function register_block_core_latest_posts() {
       	register_block_type(
       		'core/latest-posts',
       		array(
       			'attributes'      => array(
       				'categories'      => array(
       					'type' => 'string',
       				),
       				'className'       => array(
       					'type' => 'string',
       				),
       				'postsToShow'     => array(
       					'type'    => 'number',
       					'default' => 5,
       				),
       				'displayPostDate' => array(
       					'type'    => 'boolean',
       					'default' => false,
       				),
       				'postLayout'      => array(
       					'type'    => 'string',
       					'default' => 'list',
       				),
       				'columns'         => array(
       					'type'    => 'number',
       					'default' => 3,
       				),
       				'align'           => array(
       					'type' => 'string',
       				),
       				'order'           => array(
       					'type'    => 'string',
       					'default' => 'desc',
       				),
       				'orderBy'         => array(
       					'type'    => 'string',
       					'default' => 'date',
       				),
       			),
       			'render_callback' => 'render_block_core_latest_posts',
       		)
       	);
       }
   
       add_action( 'init', 'register_block_core_latest_posts' );
       ```
   
 * As I said, thumbnail is working well, so I don’t really get why the excerpt doesn’t.
   
   Much appreciation to any help, Florian
    -  This reply was modified 7 years, 5 months ago by [florianwilhelm](https://wordpress.org/support/users/florianwilhelm/).
 *  [HudsonValleyWebDesign](https://wordpress.org/support/users/jaycbrf/)
 * (@jaycbrf)
 * [7 years, 5 months ago](https://wordpress.org/support/topic/latest-posts-block/#post-11024312)
 * Try removing get_
 * [https://codex.wordpress.org/The_Loop_in_Action#Showing_Excerpts_or_Full_Post_Depending_Upon_Number_of_Posts](https://codex.wordpress.org/The_Loop_in_Action#Showing_Excerpts_or_Full_Post_Depending_Upon_Number_of_Posts)
 *  Thread Starter [florianwilhelm](https://wordpress.org/support/users/florianwilhelm/)
 * (@florianwilhelm)
 * [7 years, 5 months ago](https://wordpress.org/support/topic/latest-posts-block/#post-11025113)
 * Hi,
 * Removing get_ from get_the_excerpt doesn’t change anything for me, it still displays
   the current page excerpt instead of the $post_id one.
 * I think it comes from the fact it doesn’t get $post_id as a valid argument, and
   the default value get_the_excerpt() and the_excerpt() are the global post (the
   current page/post).
    My knowledges in PhP are not so good, which makes it hard
   for me to identify clearly the problem.
 *  Thread Starter [florianwilhelm](https://wordpress.org/support/users/florianwilhelm/)
 * (@florianwilhelm)
 * [7 years, 5 months ago](https://wordpress.org/support/topic/latest-posts-block/#post-11025147)
 * By the way, I tried adding manualy an excerpt to my post with <!–more–> just 
   to be sure it was not a conflict caused by the lack of excerpt in my post, but
   it doesn’t change anything to my Latest Posts block.
 *  Thread Starter [florianwilhelm](https://wordpress.org/support/users/florianwilhelm/)
 * (@florianwilhelm)
 * [7 years, 5 months ago](https://wordpress.org/support/topic/latest-posts-block/#post-11026758)
 * Hi,
 * I solved my problem using the following piece of code:
 *     ```
       foreach ( $recent_posts as $post ) {
       		$post_id = $post['ID'];
   
       		$title = get_the_title( $post_id );
       		if ( ! $title ) {
       			$title = __( '(Untitled)' );
       		}
   
       		$post_url = get_permalink( $post_id );
   
       		$text = get_post( $post_id );
       		$text = $text->post_content;
       		$text = wp_trim_words( $text, 25, '... <a href="'.$post_url.'">read&nbsp;more</a>' );
       		$excerpt = $text;
   
       		$list_items_markup .= sprintf(
       			'<li>
       			<a href="%2$s">%1$s%3$s</a><p>%4$s</p>',
       			get_the_post_thumbnail( $post_id ),
       			esc_url( get_permalink( $post_id ) ),
       			esc_html( $title ), 
       			$excerpt
       		);
       ```
   
 * It shows the target post 25 first words and I put a link on the read more to 
   access said post. It might not be the best way to do this but it works, which
   makes it the best way for me 😀
 * Hope it might help if someone has the same issue.
    Have a nice day, Florian
    -  This reply was modified 7 years, 5 months ago by [florianwilhelm](https://wordpress.org/support/users/florianwilhelm/).
      Reason: solved
 *  [manuki](https://wordpress.org/support/users/manuki/)
 * (@manuki)
 * [7 years, 4 months ago](https://wordpress.org/support/topic/latest-posts-block/#post-11058577)
 * Hi Florian, thanks for your post and the solutions.
    I want to accomplish the
   same thing, But what happens when wordpress makes an update and you do the automatic
   update? Your change will be overridden with the new wp-include/blocks php right?
   Is there a way to make this local to the theme?
 *  Thread Starter [florianwilhelm](https://wordpress.org/support/users/florianwilhelm/)
 * (@florianwilhelm)
 * [7 years, 4 months ago](https://wordpress.org/support/topic/latest-posts-block/#post-11059791)
 * As it goes to wp-include, i don’t think you can include it to a theme or whatever.
   
   My take on this at the moment is just to keep it in mind each time I have a wp
   update, which of course is not the best :/
 *  [manuki](https://wordpress.org/support/users/manuki/)
 * (@manuki)
 * [7 years, 4 months ago](https://wordpress.org/support/topic/latest-posts-block/#post-11060891)
 * Right… thanks for replying.
 *  [kimosagi](https://wordpress.org/support/users/kimosagi/)
 * (@kimosagi)
 * [6 years, 11 months ago](https://wordpress.org/support/topic/latest-posts-block/#post-11681652)
 * Thank you for posting this, I would like to add that support for post_thumbnails
   needs to be activated on the theme for this to work:
    [https://codex.wordpress.org/Post_Thumbnails#Enabling_Support_for_Post_Thumbnails](https://codex.wordpress.org/Post_Thumbnails#Enabling_Support_for_Post_Thumbnails)
 *  [hotuhai](https://wordpress.org/support/users/hotuhai/)
 * (@hotuhai)
 * [6 years, 6 months ago](https://wordpress.org/support/topic/latest-posts-block/#post-12154491)
 * hi i has problem, in latest posts, PoststoShows just 100 posts limit, how i can
   increas the number of latest posts displayed from 100 to 1000 or deep ?
    Sorry
   for my english Thankyou somuch
 *  [soeblangdi](https://wordpress.org/support/users/soeblangdi/)
 * (@soeblangdi)
 * [6 years, 1 month ago](https://wordpress.org/support/topic/latest-posts-block/#post-12685227)
 * One more query. Pl, help me. I want to make my post like this below link. Pl 
   look
 * [https://www.islamicfinder.org/hadith/ibn-majah/mosques-and-the-congregations/](https://www.islamicfinder.org/hadith/ibn-majah/mosques-and-the-congregations/)
 * Separate block in each thought (center block). How can I do it? Many thanks in
   advance.

Viewing 11 replies - 1 through 11 (of 11 total)

The topic ‘Latest Posts block’ is closed to new replies.

## Tags

 * [block](https://wordpress.org/support/topic-tag/block/)
 * [excerpt](https://wordpress.org/support/topic-tag/excerpt/)
 * [thumbnail](https://wordpress.org/support/topic-tag/thumbnail/)
 * [widget](https://wordpress.org/support/topic-tag/widget/)

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 11 replies
 * 2 participants
 * Last reply from: [soeblangdi](https://wordpress.org/support/users/soeblangdi/)
 * Last activity: [6 years, 1 month ago](https://wordpress.org/support/topic/latest-posts-block/#post-12685227)
 * Status: resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
