List Pages – Widget, Block & Shortcode

Description

List Pages gives you three ways to display a list of WordPress pages wherever you need them:

  • Widget – add it to any sidebar or widget-ready area (Classic Widgets and the Block Widget Editor are both supported).
  • Block – add the “Pages List” block directly inside any post or page in the block editor.
  • Shortcode – drop [onodev_pages_list] into any post, page, or template that supports shortcodes.

All three share the same options, so you only have to learn them once.

Display modes

  • Latest pages – automatically show the most recently published pages.
  • Manual selection – pick exactly which pages to show, with a paginated picker.
  • Children of the current page – perfect for documentation sites, knowledge bases, or any site with a page hierarchy.
  • Siblings of the current page – show the other pages at the same level, useful for in-page navigation.

Display options

  • Optional featured image (thumbnail) next to each title.
  • Optional excerpt, with configurable word length.
  • Order by date, title, menu order, or random.
  • Exclude specific page IDs.
  • Highlight the page currently being viewed.
  • Works with custom post types, not only the default “Page” post type.

Built for performance

No external libraries, no build step, no tracking, no bloat. A handful of PHP files and one small CSS file you can fully override from your theme.

Screenshots

Blocks

This plugin provides 1 block.

  • Pages List (Custom & Recent)

Installation

  1. Upload the plugin files to the /wp-content/plugins/onodev-recent-pages-widget directory, or install the plugin via the WordPress plugin screen.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Use it in one of three ways:
    • Widget: go to Appearance > Widgets, add “Pages List (Custom & Recent)” to a widget area.
    • Block: in the block editor, add the “Pages List” block to a post or page.
    • Shortcode: paste [onodev_pages_list] into any post or page content.
  4. Choose a display mode and the options you want, then save/publish.

FAQ

Can I use this in the block editor, not just in a sidebar widget?

Yes. Version 2.0 adds a native “Pages List” block you can place inside any post or page, in addition to the original widget.

Is there a shortcode?

Yes: [onodev_pages_list]. Common examples:

[onodev_pages_list mode="latest" count="5"]
[onodev_pages_list mode="manual" ids="12,45,78"]
[onodev_pages_list mode="children" show_thumbnail="yes"]
[onodev_pages_list mode="siblings" show_excerpt="yes" excerpt_length="15"]

Supported attributes: mode, post_type, count, ids, exclude, orderby, order, reference_id, show_thumbnail, show_excerpt, excerpt_length, highlight_current, class.

What do “Children” and “Siblings” mode do?

“Children” shows the sub-pages of the page currently being viewed (or of a specific reference page ID you set). “Siblings” shows the other pages that share the same parent. Both are designed for sites that organize pages in a hierarchy, like documentation or knowledge bases.

Can I use this with a custom post type instead of Pages?

Yes, set the “Post type” option (widget field, block setting, or post_type shortcode attribute) to your custom post type’s slug, as long as it’s a public post type.

Can I use this with the block-based widget editor?

Yes, the widget fully supports both Classic Widgets and the Block Widget Editor (introduced in WordPress 5.8).

How many pages can I select manually?

As many as you need. The admin picker shows 10 pages per page with navigation arrows to browse all of them.

I updated from version 1.x, will my existing widgets break?

No. All existing widget settings (title, mode, selected pages, count) are preserved automatically; the new options simply appear with sensible defaults.

Reviews

October 17, 2025
Fortunately, a plugin that allows me to add a list of pages (either the most recent or selected by me) in my site’s sidebar widget. Simple and effective, it helps give more visibility to the pages.
Read all 1 review

Contributors & Developers

“List Pages – Widget, Block & Shortcode” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.0.0

  • New: native Gutenberg block (“Pages List”), usable in any post or page, with a live preview in the editor.
  • New: [onodev_pages_list] shortcode, usable anywhere shortcodes are supported.
  • New: “Children of current page” and “Siblings of current page” display modes.
  • New: optional featured image and excerpt display.
  • New: order by date, title, menu order, or random; exclude specific page IDs.
  • New: highlight the page currently being viewed.
  • New: support for custom post types, not only “Page”.
  • Fix: manual selection mode no longer randomly shuffles which selected pages are shown when the count is lower than the number selected; the same pages are now shown consistently.
  • All widget settings from 1.x are preserved; no migration needed.

1.2

  • Added display mode toggle: “Manual Selection” or “Latest Pages”.
  • Added field to set number of latest pages to display.
  • Improved JS and UX for showing/hiding fields dynamically.
  • Enhanced block widget compatibility and interface logic.

1.1

  • Fix compatibility with block widget editor.
  • Added external JS for pagination to work reliably.

1.0

  • Initial release.