CC Child Pages
Add to ListCC Child Pages is a simple plugin to show links to child pages via a shortcode.
Child Pages are displayed in responsive boxes, and include the page title, an excerpt and a “Read more…” link.
You can choose between 1, 2, 3 & 4 column layouts.
3 & 4 column layouts will resize to a 2 column layout on small devices to ensure that they remain readable.
CC Child Pages editor button
CC Child Pages now adds a button to the WordPress text editor, allowing you to quickly insert the shortcode and select many common options
CC Child Pages widget
CC Child Pages also includes a widget for displaying child pages within your sidebars.
The widget can be set to show the children of the current page or a specific page, or to show all pages.
Pages can be sorted by their menu order, title or ID. You can also select the depth of pages to be displayed.
You can now also tick the checkbox to show all pages, in which case the widget will behave much like the standard Pages widget but with additional options.
Using the shortcode
The simplest usage would be to use the shortcode with no parameters:
[child_pages]
This would show the Child Pages for the current page in 2 columns.
You can add the cols
parameter to choose the number of columns:
[child_pages cols="1"]
[child_pages cols="2"]
[child_pages cols="3"]
[child_pages cols="4"]
… if cols
is set to anything other than 1, 2, 3 or 4 the value will be ignored.
You can also show the child pages of a specific page by adding the ID
of the page as follows:
[child_pages id="42"]
… or you can specify multiple IDs in a comma-separated list (does not work when using list="true"
)
[child_pages id="42,53,76"]
To exclude pages, use the exclude
parameter. This allows you to specify a comma separated list of Page IDs to be exclude from the output of the shortcode.
[child_pages exclude="5,33,45"]
To display only specific pages, you can use the page_ids
paremeter. This accepts a comma separated list of IDs. If this parameter is used, the id
and exclude
parameters are ignored.
[child_pages page_ids="3,7,10,35"]
The above code will display only the listed pages.
If you want to prefer to use text other than the standard “Read more …” to link to the pages, this can be specified with the more
parameter:
[child_pages more="More..."]
You may also hide the “Read more …” link altogether by setting the hide_more
parameter to "true"
:
[child_pages hide_more="true"]
Since there is no other way for the visitor to link to the child page, you can choose to make the page titles link to the child page by setting the link_titles
parameter to "true"
:
[child_pages link_titles="true"]
(This is mainly designed to be used with the hide_more
parameter, but can be used independently if you want to have both the titles and “Read more …” text link to the child page.)
When specifying link_titles="true"
, you may wish to apply your own styling to the links. To do so, you can specify a style using the title_link_class
parameter:
[child_pages link_titles="true" title_link_class="my_title_link_class"]
You may also hide the titles altogether by setting the hide_title
parameter to "true"
:
[child_pages hide_title="true"]
You can display a thumbnail of the featured image for each page (if set) by setting the thumbs
parameter to "true"
:
[child_pages thumbs="true"]
You can now also display thumbnails at different sizes to the default (‘medium’) size. Simply specify the thumbnail size in the thumbs
parameter. You can even specify custom image sizes.
[child_pages thumbs='large']
You can make thumbnails link to the related child page by setting the link_thumbs
to "true"
:
[child_pages thumbs='large' link_thumbs="true"]
… note that specifying the link_thumbs
parameter will have no effect unless the thumbs
parameter is set to either true
or a thumbnail size.
You can specify a target for the links added by the plugin by setting the link_target
parameter. This will work exactly the same as setting the target
parameter for the HTML <a>
tag:
[child_pages link_target="_blank"]
You can limit the length of the excerpt by specifying the words
parameter:
[child_pages words="10"]
You can hide the excerpt altogether by setting the hide_excerpt
parameter to "true"
:
[child_pages hide_excerpt="true"]
You can stop Custom Excerpts from being truncated by setting the truncate_excerpt
parameter to “false”:
[child_pages truncate_excerpt="false"]
… this will display custom excerpts exactly as entered without being shortened. (Especially useful if using the Rich Text Excerpts plugin, in which case all styling will be preserved.)
When truncate_excerpt
is set to true
, excerpts will be truncated only if they exceed the specified word count (default 55). When custom excerpts are truncated, any HTML will be removed.
If you have inserted more
tags into your posts/pages, you may find that the Continue reading
message is included in the excerpt. To hide this, set the hide_wp_more
parameter to true
:
[child_pages hide_wp_more="true"]
IF you wish to display the full contents of the listed pages, you can set the show_page_content
parameter to true
:
[child_pages show_page_content="true"]
To change the order in which the child pages are listed, you can use the orderby
and order
parameters:
[child_pages orderby="title" order="ASC"]
The orderby
parameter can have one of the following values:
menu_order (the default value) – shows the pages sorted by the order in which they appear within the WordPress admin
id sorts the pages according to the ID of the page
title sorts the pages alphabetically by the title
slug sorts the pages alphabetically according to the slug (page_name) of the page
author sorts the pages by author
date sorts the pages by the date they were created
modified sorts the pages by the date they were modified
rand shows the pages in a random order
The order
parameter can be set to:
ASC shows the pages in ascending order, sorted by the value of `orderby`
DESC shows the pages in descending order, sorted by the value of `orderby`
You can now also use the skin
parameter to choose a colour scheme for the Child Pages as follows:
[child_pages skin="simple"] (the default colour scheme)
[child_pages skin="red"]
[child_pages skin="green"]
[child_pages skin="blue"]
If you want to style the child page boxes yourself, you can also specify the class
parameter. If used, this overrides the span
parameter and adds the specified class name to the generated HTML:
[child_pages class="myclass"]
If you are not using the provided skins, you can prevent the CSS file for the skins from being loaded from the CC Child Pages options under the Settings menu.
Finally, you can also display just an unordered list (<ul>
) of child pages by adding the list
parameter. In this case, all other parameters are ignored except for class
, cols
, exclude
, orderby
, order
and id
.
[child_pages list="true"]
When using the list
parameter, you can also specify the depth
parameter to specify how many levels in the hierarchy of pages are to be included in the list.
The depth
parameter accepts the following values:
- 0 (default) Displays pages at any depth and arranges them hierarchically in nested lists
- -1 Displays pages at any depth and arranges them in a single, flat list
- 1 Displays top-level Pages only
-
2, 3 … Displays Pages to the given depth
[child_pages list=”true” depth=”4″]
Specifying the cols
parameter with list="true"
will show the child pages as an unordered list ordered into a number of columns (I would recommend avoiding the use of the depth
parameter when listing child pages within columns – the results are likely to be fairly unreadable!).
[child_pages list="true" cols="3"]
The columns are responsive, and should adjust according to the browser being re-sized or the size of the screen being used.
N.B. Because the shortcode uses the WordPress wp_list_pages
function to output the list, columns are acheived by applying CSS styling to the functions standard output. This CSS should work fine in modern browsers, but in older browsers (such as Internet Explorer 8) the list will not be split into columns
The depth
parameter can now also be used with the shortcode when list
is not set or is is set to "false"
.
If depth
is set, the sub-pages for each child page will be shown as an ordered list. You can specify a title for this element by setting the subpage_title
parameter:
[child_pages depth="3" subpage_title="Sub-pages"]
Private Pages
By default the shortcode (as of verion 1.36) will show pages that have their visibility set to publish
, with pages with a visibility of private
added for logged in users that have access to these pages.
You can specify which pages to show by using the post_status
parameter, which can take the following values:
publish
– published, publicly viewable pagespending
– pages which are pending reviewdraft
– pages which have not yet been published and have the draft statusauto-draft
– newly created pages with no contentfuture
– pages with the publish date set in the futureprivate
– pages which are not visible to users who are not logged ininherit
– revisionstrash
– pages which have been moved to the trash awaiting deletionany
– pages with any status except those from post statuses with ‘exclude_from_search’ set to true (i.e.trash
andauto-draft
)
Some of these values are unlikely to be helpful in everyday use.
For example:
[child_pages post_status="publish"]
To specify a number of statuses, provide a comma-separated list:
[child_pages post_status="publish,private"]
Post Meta
You can show the author, date created and/or date modified for a post by using show_author
, show_date_created
and show_date_modified
parameters. If set to true
, they will show the corresponding information:
[child_pages show_author="true" show_date_created="true"]
Sibling Pages
The shortcode also allows you to display sibling pages (those at the same level as the current page within the hierarchy).
To do this, set the siblings
parameter to true
.
This will override the id
parameter and will append the current page to the exclude
parameter.
[child_pages siblings="true"]
This can also be used with the list
parameter
[child_pages siblings="true" list="true"]
By default, the shortcode will not display the current page when siblings
is set to true
. If you wish to include the current page, set the show_current_page
parameter to true
:
[child_pages siblings="true" show_current_page="true"]
[child_pages siblings="true" list="true" show_current_page="true"]
Limits
You can limit the number of child pages displayed using the limit
parameter (unless the list
parameter has been set to "true"
).
For example:
[child_pages limit="5"] will display only the first 5 child pages.
Offset
When not using list="true"
, you can specify a value for offset
to skip a set number of results. For example:
[child_pages offset="2"]
… will skip the first 2 pages.
Custom Fields
You may wish to show a different title, excerpt, “Read more…” message or thumbnail on certain pages. To achieve this, you can set values in custom fields on specific pages – to tell the shortcode to use the custom value, set the use_custom_excerpt
, use_custom_title
, use_custom_more
or use_custom_thumbs
parameter to the name of the custom field to be used.
If the field used is set for a page, its value will be used instead of the default excerpt/title/”Read more…”. Pages on which the custom field is not populated will use the default value.
[child_pages use_custom_excerpt="custom_cc_excerpt"]
… will replace the standard excerpt with the value of the custom field custom_cc_excerpt
(if it is set)
[child_pages use_custom_title="custom_cc_title"]
… will replace the standard title with the value of the custom field custom_cc_title
(if it is set)
[child_pages use_custom_thumbs="custom_cc_thumnail"]
… will replace the standard thumbnail with one specified in the value of the custom field custom_cc_thumnail
(if it is set). The value of the custom_cc_thumnail
custom field can either be set to the ID of the image attachment (using the Advanced Custom Fields plugin can make this much easier to use) or to the full URL of the image.
[child_pages use_custom_more="custom_cc_more"]
… will replace the standard “Read more…” message with the value of the custom field custom_cc_more
(if it is set)
[child_pages use_custom_link="custom_cc_link"]
… will replace URL link for the page with the URL specified in the value of the custom field custom_cc_link
(if it is set). (The default value of use_custom_link
is "cc_child_pages_link"
, so that this field can be set without the need to specify the parameter. To disable this functionality, set use_custom_link=""
.)
[child_pages use_custom_link_target="custom_cc_link_target"]
… will replace the link target for titles, thumbnails and the “Read more…” text with the value specified in the custom field custom_cc_link_target
(if it is set). (The default value of use_custom_link_target
is "cc_child_pages_link_target"
, so that this field can be set without the need to specify the parameter. To disable this functionality, set use_custom_link_target=""
.)
N.B. use_custom_excerpt
, use_custom_title
, use_custom_more
, use_custom_link
use_custom_link_target
and use_custom_thumbs
will not work when list="true"
Pagination
CC Child Pages now includes basic support for pagination.
You can set the number of child pages to be displayed on each page by specifying the posts_per_page
parameter, e.g.:
[child_pages posts_per_page="6"]
The above code will display 6 child pages on each page, and if there are more than 6 child pages found navigation links will be displayed.
You can also specify the page
parameter to display a specific page. For example:
[child_pages posts_per_page="3" page="2"]
The above code will show the second page of results (item 4 onwards, up to 3 items). N.B. when the page
parameter is specified, no pagination links are displayed.
The page
parameter has no effect unless posts_per_page
is specified.
Pagination functionality is limited on a static front page
N.B. The pagination parameters are ignored when list="true"
Sticky Posts
By default, sticky posts are not shown … however, if you want them to be displayed you can set the ignore_sticky_posts
parameter to be false
:
[child_pages ignore_sticky_posts="false"]