Collapsing Pages

This plugin uses Javascript to dynamically expand or collapsable the set of
pages for each parent page.

Author:Robert Felty (profile at wordpress.org)
WordPress version required:5.0
WordPress version tested:6.4.2
Plugin version:2.0.3
Added to WordPress repository:29-04-2008
Last updated:01-01-2024
Rating, %:0
Rated by:0
Plugin URI:http://robfelty.com/plugins/collapsing-pages
Total downloads:38 854
Active installs:300+
plugin download
Click to start download

This is a very simple plugin that uses Javascript to form a collapsable set of
links in the sidebar for the pages. Every page corresponding to a given
parent page will be expanded.

It is largely based off of my Collapsing Pages and Collapsing Pages
plugins.

What’s new?

  • 2.0.3 (2024.01.01)

    • Fixed issue with subsubpages not closing correctly
    • Got rid of some more warnings
    • Tested with 6.4.2
  • 2.0.2 (2023.12.01)

    • Got rid of some warnings
    • Updated deprecated property __experimentalGroup
    • Tested with 6.4.1
  • 2.0.1 (2023.06.16)

    • Bug fixes
  • 2.0.0 (2023.03.17)

    • Updated to use Gutenberg block
  • 1.0.1 (2016.05.09)

    • Fixed bug where sometimes setting accordion to false broke javascript
  • 1.0 (2015.08.12)

    • Compatible with WordPress 4.3
    • Fixed bug where expanding symbol showed up at lowest depth specified instead
      (thanks to tkibler for pointing it out)
    • Added option to only display pages of the current subpage
    • Added option to show top-level page (previously it was always shown)
    • Added accordion style option
    • Cleaned up widget settings
    • improved style management, including the ability to specify style per widget
    • Switched from unicode symbols to html entities
    • Not showing tags for title if empty
    • Fixed bug with title attribute of pages
    • Totally rewrote javascript

Options

If using the manual version, you can pass options either as an array, or using
the query style, just like for other wordpress functions such as
wp_list_pages

  $defaults=array(
    'title' => __('Pages', 'collapsing-pages'), 
    'sortOrder'=> 'ASC' ,
    'sort'=> 'pageName' ,
    'defaultExpand'=> '',
    'expand' => 0,
    'depth' =>-1,
    'inExcludePage' => 'exclude',
    'linkToPage' => true,
    'inExcludePages' => '',
    'showPosts' => false,
    'animate' => 0,
    'useCookies' => true,
    'postTitleLength' => 0,
    'showTopLevel' => true,
    'currentPageOnly' => false,
    'debug' => false,
  );
  • inExcludePage
    • Whether to include or exclude certain pages
      • ‘exclude’ (default)
      • ‘include’
  • inExcludePages
    • The pages which should be included or excluded
  • showPosts
    • Whether or not to include posts as well as pages. Default if false
  • linkToPage
    • True, clicking on a parent page title will link to that page (default)
    • False, clicking on a parent page will expand to show sub-pages
  • sort
    • How to sort the pages. Possible values:
      • ‘pageName’ the title of the page (default)
      • ‘pageId’ the Id of the page
      • ‘pageSlug’ the url of the page
      • ‘menuOrder’ custom order specified in the pages settings
  • sortOrder
    • Whether pages should be sorted in normal or reverse
      order. Possible values:

      • ‘ASC’ normal order (a-z 0-9) (default)
      • ‘DESC’ reverse order (z-a 9-0)
  • expand
    • The symbols to be used to mark expanding and collapsing. Possible values:
      • ‘0’ Triangles (default)
      • ‘1’ + –
      • ‘2’ [+] [-]
      • ‘3’ images (you can upload your own if you wish)
      • ‘4’ custom symbols
  • customExpand
    • If you have selected ‘4’ for the expand option, this character will be
      used to mark expandable link categories
  • customCollapse
    • If you have selected ‘4’ for the expand option, this character will be
      used to mark collapsible link categories
  • postTitleLength
    • Truncate post titles to this number of characters (default: 0 = don’t
      truncate)
  • animate
    • When set to true, collapsing and expanding will be animated
  • useCookies
    • When true, expanding and collapsing of pages is remembered for each
      visitor. When false, pages are always display collapsed (unless
      explicitly set to auto-expand). Possible values:

      • true (default)
      • false
  • showTopLevel
    • True – show top level pages (default)
    • False – only display sub-pages and below
  • currentPageOnly
    • True – show only parent and sub pages of the current page
    • False – show all pages (subject to the include or exclude parameters
      set) (default)
  • debug
    • When set to true, extra debugging information will be displayed in the
      underlying code of your page (but not visible from the browser). Use
      this option if you are having problems

Examples

collapsPage('animate=true&sort=ASC&expand=3,inExcludePages=about')

This will produce a list with:
* animation on
* shown in alphabetical order
* using images to mark collapsing and expanding
* exclude page about

Demo

I use this plugin in my blog at http://blog.robfelty.com

CAVEAT

Currently this plugin relies on Javascript to expand and collapse the links.
If a user’s browser doesn’t support javascript they won’t see the links to the
posts, but the links to the pages will still work (which is the default
behavior in wordpress anyways)


Screenshots
FAQ
ChangeLog