Page-list

Advanced Iframe ProPage-listDonateGitHub

WordPress Pagelist plugin

Plugin helps you to show list of pages of your web-site with [pagelist], [subpages], [siblings] and [pagelist_ext] shortcodes. Very usefull for adding sitemap or list of subpages or list of products with thumbnails on your web-site.

Documentation

Shortcodes [pagelist], [subpages], [siblings] are based on wp_list_pages('title_li=') function and show hierarchical tree of pages;

You can use aditional parameters: [pagelist depth="2" child_of="4" exclude="6,7,8"].

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.

Shortcode [pagelist_ext] is based on get_pages() function and show list of pages with featured image and with excerpt;

You can use aditional parameters: [pagelist_ext child_of="4" exclude="6,7,8" image_width="50" image_height="50"].

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

  • depth - means how many levels in the hierarchy of pages are to be included in the list, by default depth is unlimited (depth=0), but you can specify it like this: [pagelist depth="3"]; If you want to show flat list of pages (not hierarchical tree) you can use this shortcode: [pagelist depth="-1"];
  • child_of - if you want to show subpages of the specific page you can use this shortcode: [pagelist child_of="4"] where 4 is the ID of the specific page; If you want to show subpages of the current page you can use this shortcodes: [subpages] or [pagelist child_of="current"] or [pagelist child_of="this"]; If you want to show sibling pages of the current page you can use this shortcodes: [siblings] or [pagelist child_of="parent"];
  • exclude - if you want to exclude some pages from the list you can use this shortcode: [pagelist exclude="6,7,8"] where exclude parameter accepts comma-separated list of Page IDs; You may exclude current page with this shortcode: [pagelist exclude="current"];
  • exclude_tree - if you want to exclude the tree of pages from the list you can use this shortcode: [pagelist exclude_tree="7,10"] where exclude_tree parameter accepts comma-separated list of Page IDs (all this pages and their subpages will be excluded);
  • include - if you want to include certain pages into the list of pages you can use this shortcode: [pagelist include="6,7,8"] where include parameter accepts comma-separated list of Page IDs;
  • title_li - if you want to specify the title of the list of pages you can use this shortcode: [pagelist title_li="<h2>List of pages</h2>"]; by default there is no title (title_li="");
  • number - if you want to specify the number of pages to be included into list of pages you can use this shortcode: [pagelist number="10"]; by default the number is unlimited (number="");
  • offset - if you want to pass over (or displace) some pages you can use this shortcode: [pagelist offset="5"]; by default there is no offset (offset="");
  • meta_key - if you want to include the pages that have this Custom Field Key you can use this shortcode: [pagelist meta_key="metakey" meta_value="metaval"];
  • show_date - if you want to show the date of the page you can use this shortcode: [pagelist show_date="created"]; you can use this values for show_date parameter: created, modified, updated;
  • menu_order - if you want to specify the column by what to sort you can use this shortcode: [pagelist sort_column="menu_order"]; by default order columns are menu_order and post_title (sort_column="menu_order, post_title"); you can use this values for sort_column parameter: post_title, menu_order, post_date (sort by creation time), post_modified (sort by last modified time), ID, post_author (sort by the page author's numeric ID), post_name (sort by page slug);
  • sort_order - if you want to change the sort order of the list of pages (either ascending or descending) you can use this shortcode: [pagelist sort_order="desc"]; by default sort_order is asc (sort_order="asc"); you can use this values for sort_order parameter: asc, desc;
  • link_before - if you want to specify the text or html that precedes the link text inside the link tag you can use this shortcode: [pagelist link_before="<span>"]; you may specify html tags only in the HTML tab in your Rich-text editor;
  • link_after - if you want to specify the text or html that follows the link text inside the link tag you can use this shortcode: [pagelist link_after="</span>"]; you may specify html tags only in the HTML tab in your Rich-text editor;
  • class - if you want to specify the CSS class for list of pages you can use this shortcode: [pagelist class="listclass"]; by default the class is empty (class="");

Parameters for [pagelist_ext]:

  • 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 - if you want to output all content before and after more tag use this shortcode: [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 - if you want to show subpages of the specific page you can use this shortcode: [pagelist_ext child_of="4"] where 4 is the ID of the specific page; by default it shows subpages to the current page;
  • parent - if you want to show subpages of the specific page only you can use this shortcode: [pagelist_ext parent="4"] where 4 is the ID of the specific page and the depth will be only one level; by default parent="-1" and depth is unlimited;
  • sort_order - if you want to change the sort order of the list of pages (either ascending or descending) you can use this shortcode: [pagelist_ext sort_order="desc"]; by default: sort_order="asc"; you can use this values for sort_order parameter: asc, desc;
  • sort_column - if you want to specify the column by what to sort you can use this shortcode: [pagelist_ext sort_column="menu_order"]; by default order columns are sort_column and post_title (sort_column="menu_order, post_title"); you can use this values for sort_column parameter: post_title, menu_order, post_date (sort by creation time), post_modified (sort by last modified time), ID, post_author (sort by the page author's numeric ID), post_name (sort by page slug);
  • hierarchical - display sub-pages below their parent page [pagelist_ext hierarchical="0"]; by default: hierarchical="1";
  • exclude - if you want to exclude some pages from the list you can use this shortcode: [pagelist_ext exclude="6,7,8"] where exclude parameter accepts comma-separated list of Page IDs;
  • exclude_tree - if you want to exclude the tree of pages from the list you can use this shortcode: [pagelist_ext exclude_tree="7,10"] where exclude_tree parameter accepts comma-separated list of Page IDs (all this pages and their subpages will be excluded);
  • include - if you want to include certain pages into the list of pages you can use this shortcode: [pagelist_ext include="6,7,8"] where include parameter accepts comma-separated list of Page IDs;
  • meta_key - if you want to include the pages that have this Custom Field Key you can use this shortcode: [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 - if you want to specify the number of pages to be included into list of pages you can use this shortcode: [pagelist_ext number="10"]; by default the number is unlimited (number="");
  • offset - if you want to pass over (or displace) some pages you can use this shortcode: [pagelist_ext offset="5"]; by default there is no offset (offset="");
  • post_type - [pagelist_ext post_type="page"];
  • post_status - [pagelist_ext post_status="publish"];
  • class - if you want to specify the CSS class for list of pages you can use this shortcode: [pagelist_ext class="listclass"]; by default the class is empty (class="");
  • strip_tags - if you want to output the content with tags use this shortcode: [pagelist_ext strip_tags="0"]; by default the strip_tags is enabled (strip_tags="1");
  • strip_shortcodes - if you want to output the content with shortcode use this shortcode: [pagelist_ext strip_shortcodes="0"]; by default the strip_shortcodes is enabled (strip_shortcodes="1") and all registered shortcodes are removed;
  • show_child_count - if you want to show child count you can use this shortcode: [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 showing;
  • child_count_template - if you want to specify the template of child_count you can use this shortcode: [pagelist_ext show_child_count="1" child_count_template="Subpages: %child_count%"]; by default child_count_template="Subpages: %child_count%";
  • show_meta_key - if you want to show meta key you can use this shortcode: [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 showing;
  • meta_template - if you want to specify the template of meta you can use this shortcode: [pagelist_ext show_meta_key="your_meta_key" meta_template="Meta: %meta%"]; by default meta_template="%meta%";

607 thoughts on “Page-list”

  1. first off, may i say: WOW WOW WOW !!!

    *but* i feel there's a HUGE help i can bring to the "how to use Pagelist plugin" party ...

    step 1/ create a new page titled 'Sitemap'

    step 2/ enter [sitemap] in the body

    step 3/ click Publish

    DONE :-D

    i'm embarrassed to say how long it took me to figure out step 1 :-O

    oh and why can't you add posts?

    i like joe's suggestion (13.nov/12) of [postlist] ;-)

    i can see you redirect everyone to use the List Category Posts plugin

    *but* it seems kinda weird that your solution only does half the job

    anyhoo, thanks again

    keep up the great wwwork

    and remember: YOU DA MAN!!!!!

    roberto, aka, dave, aka matt

    Reply
  2. I am using the shortcode [pagelist] in my footer, but I can only get it to display as a flat list. I saw where you had advised someone else to add some css for the ul/ol and I did that, but it still doesn't work. Help! Thanks so much - love this plugin :)

    Reply
    • I'm glad that plugin helped you.

      To make list with tree-structure try to add this css to your theme style.css file:

      
      .page-list ul {
      
      margin-left: 25px;
      
      } 
      
      

      Write me back if this code will not help.

      Reply
  3. I Love the Plug-in but I can't centre it on my page in the 'normal' way? excuse me if I'm ignorant to this - please see here: http://www.gibraltarhairdressersstore.com/sitemap/ The Maya Shop Theme I'm using with Jigoshop only has an option for a sidebar left or right (not 2 sidebars), so it would obviously look better in the middle of the page. I've tried to centre it, which it does, but the black dots stay on the left and doesn't look good! I would appreciate your help. Thanks

    Reply
      • Hi Webvitaly - Thanks for your quick reply. Unfortunately this hasn't worked? I tried .page-list {margin-left: 250px;} in The Maya Style CSS + Custom CSS & Jigoshop Style CSS to no avail? Is there another alternative I could try please? Thanks.

        Reply
        • If .page-list {margin-left: 250px;} does not worked, so styles was not added to the page.

          Try to add this css-code to your theme style.css.

          You can edit style.css in your admin section under "Appearance" menu item.

          Reply
  4. I have the site structure as follows:

    - Item 1
    
      - Item 1A
    
        - Item 1Aa
    
        - Item 1Ab
    
      - Item 1B
    
        - Item 1Ba
    
        - Item 1Bb
    
    - Item 2
    
      - Item 2A
    
      - Item 2B
    
    - Item 3

    On Page "Item 1", I'd like Page-list to display as follows:

    - Item 1
    
      - Item 1A
    
      - Item 1B
    
    - Item 2
    
    - Item 3

    On Page "Item 1A", I'd like Page-list to display as follows:

    - Item 1
    
      - Item 1A
    
        - Item 1Aa
    
        - Item 1Ab
    
      - Item 1B
    
    - Item 2
    
    - Item 3

    On Page "Item 1Ba", I'd like Page-list to display as follows:

    - Item 1
    
      - Item 1A
    
      - Item 1B
    
        - Item 1Ba
    
        - Item 1Bb
    
    - Item 2
    
    - Item 3

    Is this at all possible with Page-list without doing lots of "include" and "exclude"?

    Reply
    • IMHO you will not solve this with Page-list plugin easily.
      I would recommend you to write your own shortcode according to your needs.

      Reply
    • Si que se puede hacer!!...uds solo debe de aplicarlo mediante CSS

      ul.page-list li > ul {display:none}

      ul.page-list li.current_page_item > ul,

      ul.page-list li.current_page_parent > ul {display:block}

      Reply
      • I don't speak Spanish :)
        Google translated your msg like this: "If you can do! ... Units should only apply CSS"
        Sorry, but I did not undertand it. Could you explain it with more details?

        From css I could understand that you want to hide second level of page lists.
        You may try this shortcode: [pagelist depth="1"]

        Reply
        • two levels with open view to the active:

          to run the shortcode [pagelist child_of="parent" depth="2"]

          css:

          ul.page-list li > ul {display:none}

          ul.page-list li.current_page_item > ul,

          ul.page-list li.current_page_parent > ul {display:block}

          ####

          Sorry for my English is not very advanced!

          Reply
          • Oh, now I understood.

            Thank you for your feedback, maybe this will be helpful for other users.

            p.s. Your English is pretty good :)

            You speaks in English better than Google translates from Spanish ;)

            Reply
  5. What a great plugin. Thank you.

    Just have one more question.

    I would like to order my list of pages by a custom field which has the meta-key "date_of_event" in the postmeta table.

    Shortcode such as:

    [pagelist_ext sort_column="date_of_event" sort_order="desc"]

    Is this possible or can you help me where I have to change in your plugin script?

    Thanks so much.

    Reply
  6. Hello sir,

    I have used your plugin. I am very pleased with that , but sir, I want to divide the child page list into two column , i,e left & right coulm without wrtting page ID in exclude list. i want to divide the child page list into 50-50.

    I have used this code :

    [pagelist_ext child_of="26" show_content="0" image_width="70" image_height="70"].

    I want to divide the child page into two half and display in two coulm. So kindly modified the above code and reply to me.

    Reply
    • Try this shortcode: [pagelist_ext child_of="777" parent="777" exclude="" image_width="50" image_height="50"]

      where '777' is the id of the main page, which subpages you want to show.

      Reply
  7. Is there a way to use always the first image in the content and not the featured image, like now is the case.

    [pagelist_ext image_width="80" image_height="80" limit_content="100" show_first_image="1" ]

    Great Plugin by the way, didn't found a better plugin!

    Reply
    • You may change with css. Add this code to your active theme style.css file:

      .page-list-ext .page-list-ext-title a {color:#5f0;}

      Reply
  8. Hello.

    Thank you for the plugin. The exclude_tree is not working properly. It will only exclude on page and its subpages. Adding additional pages doesn't work:

    [pagelist exclude="current,2" exclude_tree="10007,10137" depth="2" sort_order="asc"]

    Only the first page, 10007, is excluded. I've tried adding exclude_tree twice but that doesn't work either. Any thoughts?

    Reply
      • Well, how to force some visitors to read full content? Somewhere on page is "continue reading..." with link, somewhere is "..." without link. Page is not consistent.... I tried to adapt, but no success :(

        Reply
        • The title of the page is a link. If the page has featured image - it is link to the page too. If the link is blue and underlined, then the visitor will understand that it is the link to the full content and visitor will click on it if he want to. If the link styles are poor and it is hard to understand what is link, then try to fix theme styles.

          Reply
          • I think Petr's just talking about the regular behavior of WordPress posts and the Read More/Continue Reading behavior that appears to be built in. With the Pagelist plugin and page excerpts, there are often times, even with styling, that a prompt at the end of the page excerpt is needed. I'd even prefer to have a readmore instance at the end of the excerpt than a link with the header/page title.

            Page Name: Excerpt here [Read more with link]

            WE LOVE YOUR PLUGIN!

            Reply
            • Hello, Joe, I am glad to hear you again. How are you? :)

              To remove 'more-link' try to add this code to your functions.php :

              if ( ! function_exists( 'new_excerpt_more' ) ):

              function new_excerpt_more($more) {

              return '...';

              }

              add_filter('excerpt_more', 'new_excerpt_more');

              endif;

              And also in template the_excerpt(''); should be instead of the_content('');

              IMHO 'more-link' is the bad rule, which become a standard. It is like font-tag used to be. You may check how stackoverflow show list of posts without more-link.

              P.S. I am making WordPress theme right now, and there will be no 'more-link'. I cannot submit it to public right now because it is not good enough and I am not satisfied with it yet. I hope people will like it.

              Reply
              • Thank you for the code excerpts, and the Stack Overview visual example.

                Another question to ask you, which has been on my "To Do" list:

                With pagelist_ext, it is possible to specify which image to use as a thumbnail (thumbnail, medium, large, custom)?

                Thank you!

                Reply
                • No, there is no option for which thumbnail to use.

                  You may only specify [pagelist_ext image_width="200" image_height="250"]

                  Reply
                  • Joe Banks: Yes I was talking about the regular behavior of WordPress posts and the Read More/Continue Reading behavior that appears to be built in.

                    Webster: "The title of the page is a link. If the page has featured image - it is link to the page too". It is good, but I prefer to have a readmore too. I build webpage for my friend and he wont read more too. Because the visitor await read more link. My friend love blue headings.. and when visitor doesnt see more link... I think that it is better to have a choise to have or not to have more link. Yes, we love your plugin, but something still missing. :)

                    Reply
  9. De todo corazon una de los mejores pluings de wordpress, mi favorito, .... casi enamorado .. el trabajo de dias en solo mitutos..

    one of the best wordpress pluings, my favorite .... almost in love .. days work in just mitutes ..

    Reply

Leave a Comment