For a straightforward list of your newest articles, use WordPress’s native Latest Posts block. It can show a list or grid, limit the number of posts, filter by category, and add dates, authors, featured images, excerpts, and styling without a plugin. Use Query Loop when you need custom post types, multiple filters, offsets, pagination, sticky-post controls, or a fully customized card layout. For content hosted on another WordPress site, use an RSS feed or the Jetpack cross-site widget rather than a normal Latest Posts block.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
This guide explains the correct editor path for pages, homepages, templates, sidebars, and footers; how to filter and style results; how to exclude the current post; and what to check when the list is empty or outdated.
Choose the right WordPress method
The best method depends on where the posts live and how much control you need. Start with this decision table.
As an Amazon Associate I earn from qualifying purchases.
| Requirement | Best method |
|---|---|
| Simple newest-post list | Latest Posts block |
| Simple grid with images and excerpts | Latest Posts block or Query Loop |
| Posts from one category | Latest Posts block |
| Author, keyword, tag, custom taxonomy, or post-type filtering | Query Loop |
| Pagination or an offset that skips the newest items | Query Loop |
| Highly customized cards | Query Loop |
| Classic-theme sidebar | Recent Posts widget or a block |
| Posts from another WordPress site | RSS block or Jetpack’s cross-site widget |
| Shortcode-based builder workflow | Display Posts shortcode or a dedicated plugin |
| Fully custom query or integration | WP_Query or a custom block |
WordPress’s former Posts List variation was removed in WordPress 6.7. Current instructions should use Latest Posts or Query Loop instead; do not search for Posts List as a separate supported block. See the WordPress support note.
Display recent posts with the Latest Posts block
Latest Posts is the native, plugin-free solution for most sites. The official documentation covers its insertion, category filtering, post-count limit, list and grid layouts, metadata, images, and styling: Latest Posts block documentation.
#1 Best Overall
Insert and configure the block
- Open the page, post, template, or template part where the list belongs.
- Click the Add Block (+) button, search for Latest Posts, or type
/latest. - Insert the block, then choose List View or Grid View. Grid View exposes a columns control.
- Select the block and open the settings sidebar. Set the number of posts to display.
- Optionally choose a category or subcategory. Only published posts matching that selection can appear.
- Choose whether to show the full post content or excerpts, the author, the publication date, and the featured image.
- When images are enabled, set their alignment and available size options. Adjust columns, colors, typography, spacing, borders, alignment, and advanced CSS-class settings as needed.
- Preview the result at desktop and mobile widths, then click Publish or Update.
The current developer reference identifies the block as core/latest-posts, in the Widgets category, and lists a default postsToShow value of five. That is a block default, not a site-wide limit; themes and plugins can change presentation. Technical attributes and the dynamic-rendering behavior are documented at the core/latest-posts reference.
Understand what is saved
Latest Posts is dynamic. WordPress stores block settings as a comment and renders the actual posts on the server when the page is requested. A saved example looks like this:
<!-- wp:core/latest-posts {"postsToShow":5,"displayAuthor":false,"displayPostDate":false} /-->
Because the output is generated at request time, newly published posts can appear automatically and changes to titles, dates, or metadata can affect the list. A page cache, CDN, or object cache can continue serving an older result until it is purged.
Latest Posts versus the Reading setting
A manually inserted Latest Posts block controls only its own output. It is not the same as Settings → Reading → Blog pages show at most, which controls the designated posts page or archive behavior. Changing the Reading value will not necessarily change a block already placed on a landing page, template, sidebar, or footer.
Create an advanced layout with Query Loop
Use Query Loop when Latest Posts cannot express the query or card design. WordPress describes it as a more powerful, more complex alternative. Its controls include post types, ordering, sticky-post behavior, offsets, taxonomies, authors, keywords, post formats, pagination, and no-results content. See the Query Loop documentation.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsBuild the loop
- Edit the destination page or template and add a Query Loop block, or type
/query loop. - Choose a pattern or select Start blank. A pattern may include nested blocks that you can later remove.
- Select the parent Query Loop block itself. Selecting only a title, image, or excerpt inside the loop will not expose query settings.
- In Settings, choose Custom query when you need explicit controls. Select the registered post type, then set Newest to Oldest for a recent-posts feed.
- Set Items per Page, an optional Offset, and Max page to show where available.
- Choose how sticky posts are handled: include them in normal results, exclude them, ignore special sticky behavior, or show only sticky posts.
- Add filters for categories, tags or other taxonomies, authors, keywords, post formats, and custom taxonomies supplied by a plugin or theme.
- Select the nested Post Template and build the repeated card: Featured Image, Post Title, Excerpt, Date, Author, Categories, Tags, and Read More can each be added, removed, or rearranged.
- Add or remove Pagination and provide a No Results message. Full-page navigation is enabled by default and is generally the most predictable option for keyboard and assistive-technology users.
- Choose a list or grid layout, test the result on small screens, and publish.
A custom post type must actually be registered by WordPress, your theme, or a plugin before it can be selected. Likewise, a custom taxonomy will not appear unless something has registered it.
Rank #2
Why Query Loop settings seem to be missing
First select the outer Query Loop block in List View or by clicking its boundary in the canvas. Inner blocks have their own settings, but they do not control the query. In some contexts, particularly when a loop is inserted directly into a page rather than a template, the Query Type control may not be available. If a pattern contains unexpected blocks, switch to List View and inspect the hierarchy before editing.
Add recent posts to a homepage, page, template, sidebar, or footer
Regular page or static homepage
Edit the page assigned as your homepage, place Latest Posts or Query Loop where the section should appear, and update the page. A static homepage can contain a manually inserted block even when the site’s posts page is assigned elsewhere. The manually inserted section remains independent of that posts-page assignment.
Block-theme template or template part
- Go to Appearance → Editor.
- Open the relevant template, template part, or pattern. For a site-wide footer or sidebar, edit that reusable area rather than a single page.
- Select the content area and add Latest Posts or Query Loop.
- Configure the query and repeated layout, then click Save.
Do not send block-theme users to Appearance → Widgets; the Site Editor replaces the classic widget screen for those themes.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Classic-theme sidebar or footer
- Go to Appearance → Widgets, or use Appearance → Customize → Widgets if the theme exposes widgets there.
- Open the sidebar or footer widget area.
- Add the available Recent Posts widget or a Latest Posts block.
- Set its title and number of posts, then save.
The exact widget name and controls depend on the theme and WordPress version. A classic theme may expose legacy widgets; a block theme generally uses blocks in the Site Editor.
Show posts from one category
For a simple category feed, insert Latest Posts, open its filtering or sorting settings, select the category or subcategory, set the number of posts, and publish. Verify that the posts are published and actually assigned to that term.
Use Query Loop when the category must be combined with an author, tag, keyword, post type, offset, sticky-post rule, or pagination. Its taxonomy and author filters are broader than the basic Latest Posts controls.
Display images, excerpts, dates, and authors
Latest Posts is sufficient when every item follows the same straightforward structure. Enable Featured Image, choose Post Content or excerpts, select list or grid, and adjust image alignment, size, spacing, and typography.
Use Query Loop when each card needs a deliberate hierarchy such as:
- Featured Image
- Category
- Post Title
- Excerpt
- Author and date
- Read More link
Changes made inside the Query Loop’s Post Template repeat for every result. A post without a featured image cannot display a meaningful image; set featured images consistently and check the block’s image toggle and size settings.
Exclude the current post
Latest Posts does not provide a straightforward current-post exclusion control in every context. For a “More posts” section inside an individual article, use Query Loop if its available controls meet the requirement, use a page builder’s query controls, or use custom development.
For developers, a custom query can exclude the current post ID while preserving normal WordPress escaping and cleanup:
<?php
$current_post_id = get_the_ID();
$recent_posts = new WP_Query(
array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 5,
'orderby' => 'date',
'order' => 'DESC',
'post__not_in' => array( $current_post_id ),
'ignore_sticky_posts' => true,
)
);
if ( $recent_posts->have_posts() ) :
echo '<ul class="recent-posts">';
while ( $recent_posts->have_posts() ) :
$recent_posts->the_post();
printf(
'<li><a href="%1$s">%2$s</a></li>',
esc_url( get_permalink() ),
esc_html( get_the_title() )
);
endwhile;
echo '</ul>';
endif;
wp_reset_postdata();
Place custom PHP in a child theme, a custom plugin, or a reputable code-snippet workflow. Never edit a parent theme directly, and test after theme and plugin updates.
Display posts from another WordPress website
A normal Latest Posts block queries the current site. It will not fetch posts stored elsewhere.
RSS block for block themes
- Edit the page or template.
- Add an RSS block.
- Enter the source feed URL, commonly
https://example.com/feed/. - Apply the URL, choose the number of items and display options, and save.
Confirm that the source site publishes a working feed and that your host or security layer permits the request.
Jetpack widget for classic themes
Jetpack’s Display WordPress Posts Widget can show up to ten recent posts from a WordPress.com site or a Jetpack-connected WordPress site. It requires the Extra Sidebar Widgets feature and works only with classic themes. It is not a general-purpose remote-post tool for arbitrary sites. Block-theme users should use RSS instead.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchUse a shortcode, page builder, or plugin
WordPress.com Display Posts shortcode
WordPress.com documents a Display Posts shortcode that can be inserted into a page, post, or text widget, including through the editor’s Shortcode block. The published page, rather than the editor canvas, is where the rendered result is normally visible.
Best Value
[display-posts posts_per_page="5" order="DESC" orderby="date"]
[display-posts category="news" posts_per_page="5" image_size="thumbnail"]
Do not assume this shortcode exists on every self-hosted installation. WordPress.com documents it as a platform feature; on self-hosted sites, a theme or plugin must provide the shortcode, and supported attributes depend on that implementation. Details are at WordPress.com’s Display Posts shortcode guide.
When a page builder is already in use
If your site already uses Elementor, its paid plans include Posts, Loop Grid, and Loop Carousel widgets. The official Posts widget documentation is at elementor.com/help/posts-widget-pro/. This is sensible when you already build pages in that editor and need visual loop templates. It is unnecessary overhead for a five-item list that native blocks can handle.
The pricing page snapshot viewed on August 18, 2026 listed an Essential plan at $60 annually for one site, equivalent to $5 per month when billed annually. Promotions, renewal rates, taxes, geography, and availability can change; treat that figure as a dated price signal, not a permanent quote. See the official pricing page.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Category and shortcode plugins
Recent Posts by Category is listed as a free plugin supporting category-focused widgets, shortcodes, thumbnails, and several editors. It can be useful when native blocks lack the required category widget format, but review its update history, support, compatibility, and performance on your own site.
Latest Post Shortcode provides shortcode and block workflows for lists or grids, featured images, excerpts, sorting, pagination, AJAX pagination, and category filtering. A third-party shortcode introduces a dependency and its own syntax, so use it only when those controls justify the maintenance cost.
Troubleshoot missing or incorrect posts
No posts appear
- Confirm the posts are published, not drafts, private, or scheduled for a future date.
- Check that the selected post type is correct.
- Remove restrictive category, taxonomy, author, keyword, or tag filters temporarily.
- In Query Loop, inspect the parent block’s custom-query settings and its No Results block.
- Make sure the template you edited is the one used by the page you are viewing.
- Clear page, CDN, and object caches after publishing a new post.
The list shows old posts
- Purge page, CDN, and object caches.
- Check whether the query is sorted by date rather than title or another field.
- Review future publication dates and sticky-post treatment.
- Verify that a static front page was actually updated after editing.
A category filter appears not to work
- Confirm each expected post has the selected category or subcategory.
- Select the outer Latest Posts or Query Loop block, not an inner title or image.
- Check that matching posts are published.
- Clear caches and temporarily disable conflicting query-altering plugins.
- Make sure you are not confusing a manually inserted block with the site’s designated Posts page.
Sticky posts change the apparent order
Sticky posts can be promoted, excluded, treated normally, or shown alone. In Query Loop, select the intended sticky-post option. If chronological order matters, review that setting before concluding that the block is broken.
Featured images are blank or absent
Some posts simply have no featured image. Assign one to each post, enable the block’s Featured Image setting, and check image-size and alignment controls. The theme may reserve no space or display a placeholder when an image is missing.
Recommended Free Tools
The Widgets menu is missing
You are probably using a block theme. Open Appearance → Editor and edit the relevant template or template part instead of looking for the classic widget screen.
The layout is too long or crowded
- Use roughly three to six posts in a sidebar or post footer.
- Use excerpts sparingly and avoid full content in compact areas.
- Add pagination for larger collections.
- Test the grid at mobile widths and reduce columns when cards become cramped.
- Use descriptive link text and a clear heading such as “Latest posts” or “From the blog.”
Accessibility and usability checks
- Give the section a meaningful heading and preserve a logical heading hierarchy.
- Do not rely on color alone to distinguish links, categories, or states.
- Keep keyboard focus indicators visible.
- Ensure linked images have useful alternative text, or mark them decorative when the adjacent title is the same link.
- Check text size, line length, and card density on mobile.
- Test keyboard navigation through every title, image link, Read More link, and pagination control.
- Prefer predictable full-page pagination unless you have a tested reason to use partial-page or AJAX navigation.
Which method should you use?
- Beginner or basic list: Latest Posts block.
- Category list with standard metadata: Latest Posts block.
- Custom grid, multiple filters, post types, offsets, sticky controls, or pagination: Query Loop.
- Block-theme sidebar or footer: Add a block through Appearance → Editor.
- Classic-theme sidebar: Use the available widget area or a block.
- Posts from another WordPress site: RSS for block themes; Jetpack’s widget only when the source is WordPress.com or Jetpack-connected and the theme is classic.
- Existing page-builder workflow: Use that builder’s post widget if it already powers the site.
- Unusual integrations or reliable current-post exclusion: Use a custom
WP_Queryimplementation.
Native blocks solve the normal same-site recent-posts task without adding a plugin. Add third-party software only when a specific requirement—such as a builder-controlled loop, shortcode placement, cross-site feed, or custom query—cannot be met cleanly with Latest Posts or Query Loop.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




