{"id":246544,"date":"2025-08-15T16:46:29","date_gmt":"2025-08-15T16:46:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/recent-pages-widget\/"},"modified":"2026-06-18T14:16:48","modified_gmt":"2026-06-18T14:16:48","slug":"onodev-recent-pages-widget","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/onodev-recent-pages-widget\/","author":23217191,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0","tested":"7.0","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"List Pages \u2013 Widget, Block & Shortcode","header_author":"OnoDev77","header_description":"Show Selected Pages in Widget or Latest Published Pages","assets_banners_color":"","last_updated":"2026-06-18 14:16:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/onodev-recent-pages-widget\/","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":0,"downloads":437,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2":{"tag":"1.2","author":"onodev77","date":"2025-08-15 16:45:03"},"1.3":{"tag":"1.3","author":"onodev77","date":"2025-09-28 19:00:35"},"2.0":{"tag":"2.0","author":"onodev77","date":"2026-06-18 14:16:48"}},"upgrade_notice":{"2.0.0":"<p>Adds a Gutenberg block and a shortcode alongside the original widget, plus child\/sibling page modes, thumbnails, and excerpts. Existing widgets keep working with no changes required.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3345302,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":[],"assets_blueprints":{},"all_blocks":{"onodev-rpw\/pages-list":{"name":"onodev-rpw\/pages-list","title":"Pages List (Custom & Recent)"}},"tagged_versions":["1.2","1.3","2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3577313,"resolution":"1","location":"assets","locale":"","width":385,"height":510}},"screenshots":{"1":"Widget backend: choose a display mode and the matching options.","2":"The \"Pages List\" block in the block editor, with the settings panel.","3":"Manual page picker with pagination.","4":"Frontend output with thumbnails and excerpt enabled."}},"plugin_section":[],"plugin_tags":[9660,32191,267711,6685,28767],"plugin_category":[],"plugin_contributors":[237523],"plugin_business_model":[],"class_list":["post-246544","plugin","type-plugin","status-publish","hentry","plugin_tags-child-pages","plugin_tags-list-pages","plugin_tags-page-block","plugin_tags-page-list","plugin_tags-pages-widget","plugin_contributors-onodev77","plugin_committers-onodev77"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/onodev-recent-pages-widget\/assets\/icon-128x128.png?rev=3345302","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/onodev-recent-pages-widget\/assets\/screenshot-1.png?rev=3577313","caption":"Widget backend: choose a display mode and the matching options."}],"raw_content":"<!--section=description-->\n<p><strong>List Pages<\/strong> gives you three ways to display a list of WordPress pages wherever you need them:<\/p>\n\n<ul>\n<li><strong>Widget<\/strong> \u2013 add it to any sidebar or widget-ready area (Classic Widgets and the Block Widget Editor are both supported).<\/li>\n<li><strong>Block<\/strong> \u2013 add the \"Pages List\" block directly inside any post or page in the block editor.<\/li>\n<li><strong>Shortcode<\/strong> \u2013 drop <code>[onodev_pages_list]<\/code> into any post, page, or template that supports shortcodes.<\/li>\n<\/ul>\n\n<p>All three share the same options, so you only have to learn them once.<\/p>\n\n<p><strong>Display modes<\/strong><\/p>\n\n<ul>\n<li><strong>Latest pages<\/strong> \u2013 automatically show the most recently published pages.<\/li>\n<li><strong>Manual selection<\/strong> \u2013 pick exactly which pages to show, with a paginated picker.<\/li>\n<li><strong>Children of the current page<\/strong> \u2013 perfect for documentation sites, knowledge bases, or any site with a page hierarchy.<\/li>\n<li><strong>Siblings of the current page<\/strong> \u2013 show the other pages at the same level, useful for in-page navigation.<\/li>\n<\/ul>\n\n<p><strong>Display options<\/strong><\/p>\n\n<ul>\n<li>Optional featured image (thumbnail) next to each title.<\/li>\n<li>Optional excerpt, with configurable word length.<\/li>\n<li>Order by date, title, menu order, or random.<\/li>\n<li>Exclude specific page IDs.<\/li>\n<li>Highlight the page currently being viewed.<\/li>\n<li>Works with custom post types, not only the default \"Page\" post type.<\/li>\n<\/ul>\n\n<p><strong>Built for performance<\/strong><\/p>\n\n<p>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.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/onodev-recent-pages-widget<\/code> directory, or install the plugin via the WordPress plugin screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Use it in one of three ways:\n\n<ul>\n<li><strong>Widget<\/strong>: go to <strong>Appearance &gt; Widgets<\/strong>, add \"Pages List (Custom &amp; Recent)\" to a widget area.<\/li>\n<li><strong>Block<\/strong>: in the block editor, add the \"Pages List\" block to a post or page.<\/li>\n<li><strong>Shortcode<\/strong>: paste <code>[onodev_pages_list]<\/code> into any post or page content.<\/li>\n<\/ul><\/li>\n<li>Choose a display mode and the options you want, then save\/publish.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20use%20this%20in%20the%20block%20editor%2C%20not%20just%20in%20a%20sidebar%20widget%3F\"><h3>Can I use this in the block editor, not just in a sidebar widget?<\/h3><\/dt>\n<dd><p>Yes. Version 2.0 adds a native \"Pages List\" block you can place inside any post or page, in addition to the original widget.<\/p><\/dd>\n<dt id=\"is%20there%20a%20shortcode%3F\"><h3>Is there a shortcode?<\/h3><\/dt>\n<dd><p>Yes: <code>[onodev_pages_list]<\/code>. Common examples:<\/p>\n\n<pre><code>[onodev_pages_list mode=\"latest\" count=\"5\"]\n[onodev_pages_list mode=\"manual\" ids=\"12,45,78\"]\n[onodev_pages_list mode=\"children\" show_thumbnail=\"yes\"]\n[onodev_pages_list mode=\"siblings\" show_excerpt=\"yes\" excerpt_length=\"15\"]\n<\/code><\/pre>\n\n<p>Supported attributes: <code>mode<\/code>, <code>post_type<\/code>, <code>count<\/code>, <code>ids<\/code>, <code>exclude<\/code>, <code>orderby<\/code>, <code>order<\/code>, <code>reference_id<\/code>, <code>show_thumbnail<\/code>, <code>show_excerpt<\/code>, <code>excerpt_length<\/code>, <code>highlight_current<\/code>, <code>class<\/code>.<\/p><\/dd>\n<dt id=\"what%20do%20%22children%22%20and%20%22siblings%22%20mode%20do%3F\"><h3>What do \"Children\" and \"Siblings\" mode do?<\/h3><\/dt>\n<dd><p>\"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.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20a%20custom%20post%20type%20instead%20of%20pages%3F\"><h3>Can I use this with a custom post type instead of Pages?<\/h3><\/dt>\n<dd><p>Yes, set the \"Post type\" option (widget field, block setting, or <code>post_type<\/code> shortcode attribute) to your custom post type's slug, as long as it's a public post type.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20the%20block-based%20widget%20editor%3F\"><h3>Can I use this with the block-based widget editor?<\/h3><\/dt>\n<dd><p>Yes, the widget fully supports both Classic Widgets and the Block Widget Editor (introduced in WordPress 5.8).<\/p><\/dd>\n<dt id=\"how%20many%20pages%20can%20i%20select%20manually%3F\"><h3>How many pages can I select manually?<\/h3><\/dt>\n<dd><p>As many as you need. The admin picker shows 10 pages per page with navigation arrows to browse all of them.<\/p><\/dd>\n<dt id=\"i%20updated%20from%20version%201.x%2C%20will%20my%20existing%20widgets%20break%3F\"><h3>I updated from version 1.x, will my existing widgets break?<\/h3><\/dt>\n<dd><p>No. All existing widget settings (title, mode, selected pages, count) are preserved automatically; the new options simply appear with sensible defaults.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>New: native Gutenberg block (\"Pages List\"), usable in any post or page, with a live preview in the editor.<\/li>\n<li>New: <code>[onodev_pages_list]<\/code> shortcode, usable anywhere shortcodes are supported.<\/li>\n<li>New: \"Children of current page\" and \"Siblings of current page\" display modes.<\/li>\n<li>New: optional featured image and excerpt display.<\/li>\n<li>New: order by date, title, menu order, or random; exclude specific page IDs.<\/li>\n<li>New: highlight the page currently being viewed.<\/li>\n<li>New: support for custom post types, not only \"Page\".<\/li>\n<li>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.<\/li>\n<li>All widget settings from 1.x are preserved; no migration needed.<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Added display mode toggle: \"Manual Selection\" or \"Latest Pages\".<\/li>\n<li>Added field to set number of latest pages to display.<\/li>\n<li>Improved JS and UX for showing\/hiding fields dynamically.<\/li>\n<li>Enhanced block widget compatibility and interface logic.<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Fix compatibility with block widget editor.<\/li>\n<li>Added external JS for pagination to work reliably.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A flexible page list: widget, block, or shortcode. Latest, manual, child or sibling pages, thumbnails and excerpts included.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/246544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=246544"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/onodev77"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=246544"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=246544"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=246544"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=246544"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=246544"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=246544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}