Page-list

Description

shortcodes:

  • [pagelist] – hierarchical tree of all pages on site (useful to show sitemap of the site);
  • [subpages] – hierarchical tree of subpages to the current page;
  • [siblings] – hierarchical tree of sibling pages to the current page;
  • [pagelist_ext] – list of pages with featured image and with excerpt;

examples with aditional parameters:

  • [pagelist child_of="4" depth="2" exclude="6,7,8"]
  • [pagelist_ext child_of="4" exclude="6,7,8" image_width="50" image_height="50"]
  • all Page-list params

Parameters for [pagelist], [subpages] and [siblings]:

  • [pagelist] – list of all pages as the hierarchical list;
  • [subpages] – list of subpages to the current page as the hierarchical list; Same as: [pagelist child_of="current"];
  • [siblings] – list of sibling pages to the current page as the hierarchical list; Same as: [pagelist child_of="parent"];
  • depth – how many levels in the hierarchy of pages are to be included in the list: [pagelist depth="3"]; by default depth is unlimited (depth=”0″); Displays pages at any depth and arranges them in a flat list: [pagelist depth="-1"];
  • child_of – displays the sub-pages of a single Page by ID: [pagelist child_of="4"];
  • exclude – define a comma-separated list of Page IDs to be excluded from the list: [pagelist exclude="6,7,8"]; You may exclude current page: [pagelist exclude="current"];
  • exclude_tree – define a comma-separated list of parent Page IDs and all its subpages to be excluded: [pagelist exclude_tree="7,10"];
  • include – include a comma-separated list of Page IDs into the list: [pagelist include="6,7,8"];
  • title_li – set the text and style of the Page list’s heading: [pagelist title_li="<h2>List of pages</h2>"]; by default there is no title (title_li=””);
  • authors – only include pages authored by the authors in this comma-separated list of author IDs: [pagelist authors="2,5"]; by default all authors are included (authors=””);
  • number – sets the number of pages to display: [pagelist number="10"]; by default the number is unlimited (number=””);
  • offset – the number of pages to pass over (or displace) before collecting the set of pages: [pagelist offset="5"]; by default there is no offset (offset=””);
  • post_type – list associated with a certain hierarchical Post Type [pagelist post_type="page"]; by default: (post_type=”page”); possible values: page, revision, Hierarchical Custom Post Types (‘post’ is not a Hierarchical Post Type);
  • post_status – a comma-separated list of all post status types: [pagelist post_status="private"]; by default: (post_status=”publish”); possible values: publish, private, draft;
  • meta_key and meta_value – only include the pages that have this Custom Field Key and this Custom Field Value: [pagelist meta_key="metakey" meta_value="metaval"];
  • show_date – display creation or last modified date next to each Page: [pagelist show_date="created"]; possible values: created, modified, updated;
  • date_format – the format of the Page date set by the show_date parameter: [pagelist date_format="l, F j, Y"]; by default use the date format configured in your WordPress options;
  • sort_column – sort the list of pages by column: [pagelist sort_column="menu_order"]; by default: (sort_column=”menu_order, post_title”); possible values: post_title, menu_order, post_date (sort by creation time), post_modified, ID, post_author, post_name (sort by page slug);
  • sort_order – the sort order of the list of pages (either ascending or descending): [pagelist sort_order="desc"]; by default: (sort_order=”asc”); possible values: asc, desc;
  • link_before – sets the text or html that precedes the link text inside link tag: [pagelist link_before="<span>"]; you may specify html tags only in the HTML tab in your Rich-text editor;
  • link_after – sets the text or html that follows the link text inside link tag: [pagelist link_after="</span>"]; you may specify html tags only in the HTML tab in your Rich-text editor;
  • class – the CSS class for list of pages: [pagelist class="listclass"]; by default the class is empty (class=””);
  • columns – for splitting list of pages into columns: [pagelist class="page-list-cols-2"]; available classes: page-list-cols-2, page-list-cols-3, page-list-cols-4, page-list-cols-5; works in all modern browsers and IE10+; columns are responsive and become 1 column at less than 768px;

More info about params for [pagelist], [subpages], [siblings].

Parameters for [pagelist_ext]:

  • [pagelist_ext] – by default shows list of subpages to current page; but if there is no subpages than all pages will be shown;
  • show_image – show or hide featured image [pagelist_ext show_image="0"]; “show_image” have higher priority than “show_first_image”; by default: show_image=”1″;
  • show_first_image – show or hide first image from content if there is no featured image [pagelist_ext show_first_image="1"]; by default: show_first_image=”0″;
  • show_title – show or hide title [pagelist_ext show_title="0"]; by default: show_title=”1″;
  • show_content – show or hide content [pagelist_ext show_content="0"]; by default: show_content=”1″;
  • more_tag – output all content before and after more tag: [pagelist_ext more_tag="0"]; this parameter does not add “more-link” to the end of content, it just cut content before more-tag; “more_tag” parameter have higher priority than “limit_content”; by default the more_tag is enabled (more_tag=”1″) and showing only content before more tag;
  • limit_content – content is limited by “more-tag” if it is exist or by “limit_content” parameter [pagelist_ext limit_content="100"]; by default: limit_content=”250″;
  • image_width – width of the image [pagelist_ext image_width="80"]; by default: image_width=”50″;
  • image_height – height of the image [pagelist_ext image_height="80"]; by default: image_height=”50″;
  • child_of – displays the sub-pages of a single Page by ID: [pagelist_ext child_of="4"]; by default it shows subpages to the current page;
  • parent – list those pages that have the provided single page only ID as parent: [pagelist_ext parent="4"]; by default parent=”-1″ and depth is unlimited;
  • sort_column – sort the list of pages by column: [pagelist_ext sort_column="menu_order"]; by default: (sort_column=”menu_order, post_title”); possible values: post_title, menu_order, post_date (sort by creation time), post_modified, ID, post_author, post_name (sort by page slug);
  • sort_order – the sort order of the list of pages (either ascending or descending): [pagelist_ext sort_order="desc"]; by default: (sort_order=”asc”); possible values: asc, desc;* hierarchical – display subpages below their parent page [pagelist_ext hierarchical="0"]; by default: hierarchical=”1″;
  • hierarchical – display subpages below their parent page [pagelist_ext hierarchical="0"]; by default: hierarchical=”1″;
  • exclude – define a comma-separated list of Page IDs to be excluded from the list: [pagelist_ext exclude="6,7,8"];
  • exclude_tree – define a comma-separated list of parent Page IDs and all its subpages to be excluded: [pagelist_ext exclude_tree="7,10"];
  • include – include a comma-separated list of Page IDs into the list: [pagelist_ext include="6,7,8"];
  • meta_key and meta_value – only include the pages that have this Custom Field Key and this Custom Field Value: [pagelist_ext meta_key="metakey" meta_value="metaval"];
  • authors – only include the pages written by the given author(s) [pagelist_ext authors="6,7,8"];
  • number – sets the number of pages to display: [pagelist_ext number="10"]; by default the number is unlimited (number=””);
  • offset – the number of pages to pass over (or displace) before collecting the set of pages: [pagelist_ext offset="5"]; by default there is no offset (offset=””);
  • post_type – list associated with a certain hierarchical Post Type [pagelist_ext post_type="page"]; by default: (post_type=”page”); possible values: page, revision, Hierarchical Custom Post Types (‘post’ is not a Hierarchical Post Type);
  • post_status – a comma-separated list of all post status types: [pagelist_ext post_status="private"]; by default: (post_status=”publish”); possible values: publish, private, draft;
  • class – the CSS class for list of pages: [pagelist_ext class="listclass"]; by default the class is empty (class=””);
  • strip_tags – strip tags or not: [pagelist_ext strip_tags="0"]; by default the tags are stripped (strip_tags=”1″);
  • strip_shortcodes – strip registered shortcodes or not: [pagelist_ext strip_shortcodes="0"]; by default shortcodes are stripped (strip_shortcodes=”1″) and all registered shortcodes are removed;
  • show_child_count – show count of subpages: [pagelist_ext show_child_count="1"]; by default the child_count is disabled (show_child_count=”0″); If show_child_count=”1″, but count of subpages=0, than child count is not shown;
  • child_count_template – the template of child_count: [pagelist_ext show_child_count="1" child_count_template="Subpages: %child_count%"]; by default child_count_template=”Subpages: %child_count%”;
  • show_meta_key – show or hide meta key: [pagelist_ext show_meta_key="your_meta_key"]; by default the show_meta_key is empty (show_meta_key=””); If show_meta_key is enabled, but meta_value is empty, than meta_key is not shown;
  • meta_template – the template of meta: [pagelist_ext show_meta_key="your_meta_key" meta_template="Meta: %meta%"]; by default meta_template=”%meta%”;
  • columns – for splitting list of pages into columns: [pagelist_ext class="page-list-cols-2"]; available classes: page-list-cols-2, page-list-cols-3, page-list-cols-4, page-list-cols-5; works in all modern browsers and IE10+; columns are responsive and become 1 column at less than 768px;

More info about params for [pagelist_ext].

Screenshots

  • [pagelist] shortcode
  • [pagelist_ext] shortcode

Installation

  1. install and activate the plugin on the Plugins page
  2. add shortcodes to pages: [pagelist], [subpages], [siblings], [pagelist_ext]

FAQ

How to show the list of posts?

To show list of posts you can use List Category Posts plugin.

On what functions shortcodes are based?

Shortcodes [pagelist], [subpages], [siblings] are based on wp_list_pages() function.
Shortcode [pagelist_ext] is based on get_pages() function.

What is the difference between [pagelist], [subpages] and [siblings]?

Shortcodes [pagelist], [subpages] and [siblings] accept the same parameters. The only difference is that [subpages] and [siblings] not accept child_of parameter, because [subpages] shows subpages to the current page and [siblings] shows subpages to the parent page.

How to create sitemap.xml?

To create sitemap.xml you can use Google XML Sitemaps plugin.

Is there “more-link” feature in the plugin?

No, there is no “more-link” feature in the plugin. Because “more-link“:

  • bad for SEO. Nobody will search your site with the word “more”. “rel=nofollow” will not solve it too.
  • bad for usability. There is already link on title and “more-link” is an extra no needed element on page. If user cannot understand that the title is the link, than there is a problem in css styles and not in plugin’s templates.

What to do if you need to change the plugin’s code?

When you changed the plugin’s code you should also change the plugin’s version to ‘100’ (for example) to avoid updates, which could override and delete your code.

Reviews

Kasambula 24, 2024
This is a great plugin if you can’t or don’t want to edit the theme files by yourself. It is very easy to set up, and there are a lot of options to build the shortcode. I like the fact that it has very basic styling, because I can add my own CSS to customize it.
Mukutulansanja 27, 2024
I’m really glad that there is this plugin. It is easy to use and functional. Thanks a lot for coding and providing this, Webvitaly!
Ogwomwenda (Mutunda) 13, 2021
Simple to use and works well! Tested in: PHP Version: 7.4 WordPress Version: 5.8.1
Ogwomwenda (Mutunda) 11, 2021 1 reply
I could not get this to work. Who knows, maybe it’s not compatible with latest version, or php74, or doesn’t work with custom post types.
Read all 86 reviews

Contributors & Developers

“Page-list” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Page-list” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

5.7

  • Sanitized image_width and image_height for [pagelist_ext] shortcode

5.6

  • fixed PHP Notices
  • cleaned up old CSS styles

5.5

  • fixed PHP Notices

5.4

  • fixed PHP Notices

5.3

  • added esc_attr for class atributes

5.2

  • added normalize params function to include and exclude_tree params (thanks to https://github.com/MrSwed )
  • execute shortcodes in meta tags (thanks to https://github.com/MrSwed )

5.1

  • added columns feature

5.0

  • code refactoring
  • update docs
  • added ‘authors’, ‘post_type’, ‘post_status’, ‘date_format’ params to [pagelist], [subpages], [siblings] shortcodes (thanks to Nick Ciske)

4.3

  • use wp_enqueue_scripts hook instead of wp_print_styles to enqueue scripts and styles (thanks to sireneweb)

4.2

  • fix in css styles (clearfix added to .page-list-ext)
  • make default image size 150×150 like default thumbnail size

4.1

  • change the type of output the image thumbnail in [pagelist_ext] shortcode

4.0

  • remove conflict between Pagelist and Sitemap plugins
  • remove preg_match_all notice
  • minor changes

3.8

  • fixed default [pagelist_ext] behaviour – showing all pages if there is no subpages

3.7

  • executing shortcodes in [pagelist_ext strip_shortcodes=”0″] in content

3.6

  • fixing bug with shortcode in sidebar – shortcode in comment start to execute

3.5

  • showing all pages for [pagelist_ext child_of=”0″] shortcode

3.4

  • remove esc_attr() from title in [pagelist_ext] shortcode

3.3

  • rename “get_first_image” function to “page_list_get_first_image” for avoiding conflicts

3.2

  • fixed bug with “more_tag” and non english chars

3.1

  • fixed bug with empty image in “show_first_image” parameter
  • added “more_tag” higher priority than “limit_content” (thanks to BobyDimitrov)

3.0

  • added “show_first_image” parameter for showing first image from content if there is no featured image

2.9

  • added “more_tag” parameter and more tag support
  • hiding password protected content of the pages

2.8

  • added “strip_shortcodes” parameter

2.7

  • make excerpt link if there is no title

2.6

  • fixed [pagelist_ext] “parent” parameter

2.5

  • adding spaces between lines when tags are stripped in [pagelist_ext]

2.4

  • escaping attributes in title in [pagelist_ext]

2.3

  • fixed [pagelist_ext] with showing excerpt of the page if it is not empty, else showing content

2.2

  • fixed offset parameter

2.1

  • fixed number parameter

2.0

  • fixed crash bug with [pagelist_ext] if theme does not have thumbnail feature

1.9

  • added show_child_count parameter
  • added show_meta_key parameter

1.8

  • added screenshots
  • improved parameter parsing

1.7

  • added strip_tags parameter

1.6

  • improved [pagelist_ext] shortcode: added content to list, added toggle show and limit content parameters

1.5

  • added [pagelist_ext] shortcode – list of pages with featured image

1.4

  • added exclude=”current” parameter

1.3.0

  • added class to ul elements by default
  • added “class” option (thanks to Arvind)

1.2.0

  • added [subpages] and [siblings] shortcodes

1.0.0

  • initial release