Beautiful Recent Posts Widget icon: three story rows on a deep teal tile with the newest story in yellow

Beautiful Recent Posts WidgetRecent Posts Block, Widget and Shortcode

Show your latest posts with thumbnails, excerpts and a choice of list or card layouts. Add them as a native block, the classic sidebar widget or a shortcode. All three share the same settings.

Version 5.0.0 is a full rebuild for current WordPress and PHP. It loads no frontend JavaScript, and the widgets you already set up keep working after the update.

Free and open source. Version 5.0.0 for WordPress 6.6+ and PHP 7.4+. No account or license key.

  • Native Block
  • Classic Widget
  • Shortcode
Block Editor
Beautiful Recent Posts block selected in the WordPress editor with a live list preview and sidebar controls for title, post count, category, order, layout and thumbnail shape
The block shows a live preview while you pick the category, order, layout and thumbnail shape.

Rebuilt for Current WordPress

The 2014 release was a sidebar widget and nothing else. It also called create_function(), which PHP 8 removed, so it broke on any current host.

Version 5.0.0 replaces that code with one shared renderer. The block, the widget and the shortcode all produce the same markup from the same settings, so a list looks identical wherever you place it.

  • A native block for posts, pages and Site Editor templates.
  • Editorial list and responsive card layouts.
  • Category filters, three sort orders and current-post exclusion.
  • Optional author names, excerpts and thumbnail shapes.
  • New teal branding, icons and directory banners.

Release Snapshot

  • Version 5.0.0, released September 27, 2026.
  • Requires WordPress 6.6 and PHP 7.4 or later.
  • Tested with WordPress 7.1 and PHP 7.4 and 8.2 through 8.5.
  • No frontend JavaScript, tracking, remote services or external fonts.
  • GPLv2 or later, developed in the open on GitHub.

Read the release notes

What You Can Do With It

Every option lives where you place the list. There’s no settings dashboard to visit first.

Native Block

Insert Beautiful Recent Posts in any post, page or block-theme template. The editor shows a live preview beside the sidebar controls.

Classic Widget

Classic themes get the same list in any widget area. The widget keeps its original ID, so saved sidebars carry over.

Shortcode

Drop [beautiful_recent_posts] into content or a builder module. It accepts every setting the block has.

Choose the Stories

Show 1 to 20 posts from one category, including its child categories. Sort by newest, recently updated or title, and skip the post being read.

Control the Details

Turn featured images, dates, authors, comment counts and excerpts on or off. Excerpts run from 5 to 60 words.

Stays Light

Lists are server-rendered HTML with one small stylesheet. Images use WordPress’s responsive markup and lazy loading.

Card Layout
Beautiful Recent Posts card layout showing three responsive cards with featured images, dates and excerpts below an editorial list
Cards and an editorial list in the Osmium theme. Your theme supplies the fonts and colors.

Two Layouts That Take Your Theme’s Look

The editorial list fits a sidebar or a narrow column. Cards spread into a responsive grid when the space is wider and stack when it isn’t.

  • List thumbnails can be circular, rounded or square.
  • Posts without a featured image show no empty placeholder.
  • Typography and colors come from your theme, including dark sections.
  • Keyboard focus styles and right-to-left layouts are built in.
Beautiful Recent Posts classic widget beside an article with circular thumbnails, comment links and an All stories button
The classic widget beside an article, with circular thumbnails and a button to more stories.
Beautiful Recent Posts lists inheriting a dark container's colors and a mirrored right-to-left layout
Lists inherit a dark container’s colors and mirror correctly in right-to-left languages.

Use It Anywhere With a Shortcode

The shortcode takes the same settings as the block and the widget. Add only the attributes you want to change.

Examples

Four cards with excerpts:

[beautiful_recent_posts totalnews="4" layout="cards" show_excerpt="true"]

One category, skipping the current post and hiding comment counts. Replace 12 with your category ID:

[beautiful_recent_posts category="12" exclude_current="true" show_comments="false"]

Adjust the Styling

The list inherits your theme’s type and colors. To change spacing, thumbnail size or the focus color, set these variables under .brpw in your theme’s CSS:

.brpw {
  --brpw-gap: 1rem;
  --brpw-image-size: 85px;
  --brpw-accent: #123f3a;
}

Every Setting

AttributeDefaultAccepted values
titleEmptyPlain text
totalnews31 to 20
category0Category ID. 0 shows all; child categories are included
orderbydatedate, modified or title (A to Z)
layoutlistlist or cards
image_shapecirclecircle, rounded or square (list layout only)
show_image, show_date, show_commentstruetrue or false
show_author, show_excerpt, exclude_currentfalsetrue or false
excerpt_length205 to 60 words
textbuttonEmptyButton label
pageid0ID of a published, non-password-protected page

The date shown is always the publication date, even when you sort by last update.

Upgrading From the Old Widget

Update in place from the Plugins screen. Your widgets stay, but the styling is new, so give the sidebar a quick look afterward.

  1. Update the Plugin

    The original filename, widget ID, title, post count, button text and button page are kept. Sites on the GitHub-only 4.x build migrate on activation.

  2. Review the Styling

    The CSS was refreshed. If your theme overrides the old widget styles, check those rules on a staging copy first.

  3. Regenerate Thumbnails

    New uploads get the 85px and 170px square crops automatically. Regenerate thumbnails if older images need them.

Two things to check: the plugin now needs WordPress 6.6 and PHP 7.4. The translation domain also changed from brpw to beautiful-recent-posts-widget, so custom translation files need to move to the new name.

Download Beautiful Recent Posts

Install it from Plugins > Add New in your dashboard, or download the ZIP from WordPress.org.

  • Free and open source under GPLv2 or later
  • Native block, classic widget and shortcode
  • WordPress 6.6+ and PHP 7.4+
Free
Download on WordPress.org

View the source on GitHub

Frequently Asked Questions

Will My Existing Widgets Survive the Update?

Yes. The original widget ID and its saved title, post count, button label and button page carry over. Dates, comment counts and circular thumbnails stay on by default. Only the styling changes, so review any custom CSS on staging first.

Does It Work With Block Themes and the Site Editor?

Yes. Insert the Beautiful Recent Posts block in a post, page or Site Editor template. Classic themes can use the widget in their widget areas. Both use the same renderer and settings.

Does It Load JavaScript on the Frontend?

No. Public lists use HTML and CSS only. JavaScript runs in the block editor and uses the packages WordPress already ships. The stylesheet loads only where a list appears.

What Happens When a Post Has No Featured Image?

The title and the details you enabled still show, without an empty image box. Quote and aside post formats skip thumbnails, as the original widget did.

Does It Show Private or Password-Protected Posts?

No. Lists include only published posts without a password. The optional button also links only to a public, non-password-protected page. Custom post types aren’t included.

What Happens If I Deactivate It?

Blocks and widgets stop displaying. Shortcodes stay in your content and may show as plain text until you reactivate the plugin. Your posts, images and saved widget settings aren’t deleted.

Give Your Next Great Read a Place to Shine

Add a recent posts list to your sidebar, a page or a template in a couple of minutes. Found a bug or want a feature? Open an issue on GitHub.