Jump to: navigation, search
MediaWiki Handbook: Contents, Readers, Editors, Moderators, System admins +/-

DynamicPageList or DPL for short is a MediaWiki extension supporting intersections and other set operations of pages belonging to several categories.



Two versions of dynamic page lists (DPL) exist, an older variant using tags <dynamicpagelist> plus </dynamicpagelist>, and an advanced variant using tags <dpl> plus </dpl>. A project can support none, one , or both of these two extensions, see "parser extension tags" in Special:Version.

The advanced version covers all functions of the older variant, here only the latter is explained. For further details see the descriptions in DynamicPageList and DynamicPageList2.


In essence categories are sets of related pages, created by adding [[Category:common property]] to the individual pages. In addition category pages are also ordinary pages in their first part with all features of normal pages, but their main purpose is to list all pages belonging to the category. This changes as soon as [[Category:common property]] is added or removed from one or more of the individual pages, the members of this set.

Watching the category page only tracks modifications to its first part (as for any ordinary page), but it doesn't show any additions or removals of member pages. DPLs address this missing feature, they also allow to sort member pages by various criteria where categories only offer a crude sort key or alphabetical order.

Simple DPLs start with <dynamicpagelist> followed by one or more category=name and optionally other parameter=value pairs, and they are terminated by </dynamicpagelist>. For a similar construct see inputbox.

One (first) category=name is required, and it's the base for some other attributes. Adding more category=name restricts the DPL to pages in the intersection of all specified categories.

With notcategory=name pages in that category are removed from the DPL. So for categories A, B, and C use category=A and category=B with notcategory=C for all pages in both A and B, but not C. And also not only in A, and not only in B.

Two DPLs could be used to get a kind of union, the first DPL for category A, and the second DPL for category B without A, but real unions require the advanced DPL features.


The attribute namespace= allows to restrict listed pages to a namespace given by its number or name. Use 0 for the main namespace.

The attribute redirects= can be exclude (default) not listing any redirects belonging to the selected categories. With include redirects are listed, and redirects=only limits the DPL to only redirects.

With counts=n the DPL is limited to the first n member pages as determined by the sort order (see below). The default is a system-wide maximum, with two DPLs looking at the same set from both ends it's indirectly possible to determine if really all selected pages are shown (see below).


Use suppresserrors=true to suppress error messages for an empty DPL, e.g. if the selected category doesn't exist.

The default output mode=unordered presents the DPL as unordered list, XHTML <ul>, like Wiki list markup *.

Similarly ordered results in numbered <ol> output like Wiki list markup #. Finally mode=none presents the DPL with one entry per line, terminated with <br />, roughly similar to Wiki list markup ; (semicolon).

Especially in conjunction with namespace= the attribute shownamespace=false allows to suppress the output of the namespace.


DPLs are either sorted by the date of the addition to the first category (this is often not the date of the creation of the individual page), the default ordermethod=categoryadd, or by ordermethod=lastedit, the date of the last modification of the member pages.

Sorting can be order=descending (default, most recent first) or order=ascending, allowing to look at the same set from both ends in two DPLs (see above).


With addfirstcategorydate=true the date of the addition to the first category is shown.


If the following example doesn't work where you read this page look at it on Meta.

category=Reader handbook

This results in a numbered list of help pages, oldest first:

<dynamicpagelist> category=Reader handbook order=ascending ordermethod=lastedit mode=ordered shownamespace=false </dynamicpagelist>

Another example:

category=Handbook templates
notcategory=Templates using ParserFunctions

This creates a plain list with the dates of the addition to the first (here only) category:

<dynamicpagelist> category=Handbook templates notcategory=Templates using ParserFunctions mode=none addfirstcategorydate=true </dynamicpagelist>

Links to other help pages

Help contents | search (all help pages)
Meta | Wikinews | Wikipedia | Wikiquote | Wiktionary | commons: | mw: | b: | s:
Go | Search | Stop words | URL | Namespace | Page name | Section
Backlinks | Link | Piped link | Interwiki link | Redirect | Category | Image page
Logging in and preferences
Logging in | Preferences | User style
Advanced editing | Editing FAQ | Edit toolbar | Export
Editing shortcuts
Tracking changes
Recent changes (enhanced) | Related changes | Watching pages | Diff
Page history | Edit summary | User contributions | Minor edit | Patrolled edit
Style & formatting
Wikitext examples | Reference card
HTML in wikitext | HTML elements
List | Table | Sorting
Mathematical symbols on English Wikipedia
Special input and output
Inputbox | Special characters | Displaying a formula | Images and other uploaded files | EasyTimeline
Advanced functioning
Template | Advanced templates | Parser function | ParserFunctions | Parameter default | Variable | Magic word | System message | Substitution
Array | Calculation
Page management
Starting a new page | Renaming (moving) a page | Maintenance | Merging and moving pages | Protecting pages
Resolving disputes | Deleting a page
Special pages
Talk page | Testing | Sandbox
Lists of resources
Lists of Categories | Copyrights | Infobox
Redirect | Reference Desk | Shortcuts | Stub types

Other languages: English (en) +/-