Help:Category
Categories are a software feature of MediaWiki, which enables pages to be added to automatic listings. These help structure a project such as LIMSwiki by grouping together pages on similar subjects.
A category page lists the articles (or other pages) that have been added to a particular category. There may also be a section listing the subcategories of that category. The subcategorization feature makes it possible to organize categories into tree-like structures to aid navigation.
Summary
The MediaWiki software maintains tables of categories, to which any editable page can be added. To add a page to a category, include "[[Category:Category name]]" or "[[Category:Category name|Sortkey]]" in that page's wikitext. The categories to which a page belongs appear in a box at the bottom of the page.
A category is usually associated with a category page in the "Category:" namespace. A category page contains text that can be edited, like any other page, but when the page is displayed, the last part of what is displayed is an automatically generated list of all pages in that category, in the form of links. Other category pages which appear in this list are treated separately, as subcategories.
Putting pages in categories
A page belongs to a category if the page's wikitext contains a declaration for that category. A category declaration takes the form [[Category:Category name]] or [[Category:Category name|Sortkey]]. The declaration must be processed, i.e. it will not work if it appears between <nowiki>...</nowiki> or <includeonly>...</includeonly> tags, or in a comment. The declaration may however come from a transcluded page; see Categories and templates below.
A category name can be any string which would be a legitimate page title. It cannot begin with a lower-case letter. If the category name given in a category declaration begins with a lower-case letter, then it is interpreted as if it were capitalized.
In LIMSwiki, it is customary to place category declarations at the end of the wikitext, but before any stub templates (which themselves transclude categories) and interlanguage links.
When a page has been added to one or more categories, a categories box appears at the bottom of the page (or possibly elsewhere, if a non-default skin is being used). This box contains a list of the categories the page belongs to, in the order in which the category declarations appear in the processed wikitext. The category names are linked to the corresponding category pages. They appear as redlinks if the corresponding category page does not exist.
Hidden categories are not displayed, except as described below under Hiding categories.
Category pages
A category page is a page in the "Category:" namespace. The page "Category:Name" corresponds to the category called "Name". New category pages can be created like any other pages – by clicking on redlinks or entering the name in the search box and clicking "Go".
A category page can be edited like any other page. However, when it is displayed, the editable part of the page is followed by automatically generated lists of pages belonging to the category, as follows:
- First a count and list of subcategories (other category pages belonging to the category) is shown, if any exist. The name of each subcategory is followed by a count of its own subcategories. These further subcategories are displayed if the "+" sign alongside the subcategory is clicked.
- Next a count and list of pages in the category (excluding subcategories and images) is shown. If the category has no members, a message to that effect is displayed.
- Next a count and list of image and other media files in the category appears, if any exist. These are shown with thumbnails. The first 20 characters of the file name are shown, with an ellipsis if that is not the full name; also the file size is shown.
The items in the lists all link to the pages concerned; in the case of the images this applies both to the image itself and to the text below it (the name of the image).
For the way in which the lists are ordered, see Sort order below. The first and second lists are divided into sections, according to the first character of the sort key. These initial characters are displayed above the sections. To suppress these, make all sort keys start with a space.
A category page can only display a limited number of items (currently 200). If more pages belong to the category, there will be a link to the next ones.
The categories box for the category page appears at the bottom, in the same place as for other pages. This contains the categories to which the current category page has been added, i.e. its parent categories (the categories of which it is a subcategory). Add a category page to other categories in the normal way, using the "[[Category:Category name]]" or "[[Category:Category name|Sortkey]]" syntax.
Linking to category pages
To link to a category page without putting the current page in that category, precede the link with a colon: [[:Category:Category name]]. Such a link can be piped like a normal wikilink. (The {{cl}} template, and others listed on its documentation page, may sometimes be helpful.)
Sort order
The system uses pseudo-alphabetical order, or more precisely Unicode order, for pages in categories. The range 32–127 corresponds to ASCII:
!"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ `abcdefghijklmnopqrstuvwxyz{|}~
"Z" comes before "a", and "z" comes before characters with diacritics.
Unlike at Special:Allpages and Special:Prefixindex, a space is treated as a space (coming before all other characters), not as an underscore.
Each of the three lists (subcategories, pages, media files) is arranged in the order explained above (except that, in the subcategories list, the namespace indicator "Category:" is not considered). If an item ought to be positioned within a list on the basis of an alternative name (sort key) for that item, then this can be specified in the category tag that places the item in the list:
[[Category:Category name|Sortkey]]
For example to add an article called Albert Einstein to the category "People" and have the article sorted by "Einstein, Albert", you would type:
[[Category:People|Einstein, Albert]]
Unlike with a piped link (which uses the same syntax), the sort key itself is not displayed to readers. It affects only the order in which pages are listed on the category page.
It is useful to document the system being used for sort keys on the category page.
Default sort key
It is possible to set a default sort key which is different from {{PAGENAME}} by using the magic word {{DEFAULTSORT}} thus:
{{DEFAULTSORT:new key}}
In the case of multiple default sort key tags, the last one on a page applies for all categories, regardless of the position of the category tags. This also means that a DEFAULTSORT tag in a template, intended for category tags in that template, for categorization of pages calling the template, is not effective if another DEFAULTSORT tag occurs later on these pages, even if it is also "hidden", in another template.
Hiding categories
When the magic word __HIDDENCAT__ is placed on a category page, that category becomes hidden, meaning that it will not be displayed on the pages belonging to that category. On LIMSwiki, the magic word is not normally used explicitly, but is applied through the {{hiddencat}} template. The feature is mostly used to prevent project maintenance categories from showing up to ordinary readers on article pages.
However, hidden categories are displayed (although listed as hidden):
- on category pages (whether as parent categories or subcategories);
- at preview during editing;
- if the user has selected "Show hidden categories" in user preferences.
Hidden categories are automatically added to Category:Hidden categories.
Categories and templates
A template can be used to add pages to a category, usually by placing the category link inside <includeonly></includeonly> tags on the template (e.g. <includeonly>[[Category:category name]]</includeonly>
). When the template is transcluded into the page, the category link becomes active, and the page is added to the category page. This is useful for categories that have high turnover or many pages included, like cleanup categories.
Changes to the template, however, may not be reflected immediately on the category page. When you edit an article to add a category tag directly, the list of category members is updated immediately when the page is saved. When a category link is contained in a template, however, this does not happen immediately: instead, whenever a template is edited, all the pages that transclude it are put into the job queue to be recached during periods of low server load. This means that, in busy periods, it may take hours or even days before individual pages are recached and they start to appear in the category list. Performing a null edit to a page will allow it to jump the queue and be immediately recached.
To add the template itself to the category page as well, omit the "includeonly" tags. To add the template to a category without categorizing pages on which the template is transcluded, place the category declaration between <noinclude>...</noinclude> tags.
Parser functions can be used to make the transcluded categories, or the sort key used in them, dependent on other variables, notably PAGENAME.
- Passing a category by parameter
- <includeonly>[[Category:{{{cat|default}}}]]</includeonly> or <includeonly>{{{cat|[[Category:default]]}}}</includeonly>
If the user provides a parameter 'cat=XXX' the page will be categorized at the page [[Category:XXX]], otherwise it will be categorized at the page [[Category:default]]. Calling the template with "cat=" (equal to nothing) disables putting the page in any category.
- Excluding non-article pages
- <includeonly>{{#if:{{NAMESPACE}} | | [[Category:XXX]]}}</includeonly>
the variable NAMESPACE is null for mainspace articles. For any space other than mainspace, this ParserFunction will produce an empty string, but for regular articles this will include the article in Category:XXX.
On LIMSwiki it is not recommended that templates be used to populate ordinary content categories of articles.
Categorizing redirect pages
Redirect pages can be categorized. The category tag must be placed after the redirect link. On a category page, redirects are listed in italics.
For conventions on the categorization of redirects in LIMSwiki, see Wikipedia's article on categorizing redirects.
Moving and redirecting category pages
The only way to move a category page is to manually change all category tags that link to the category, and copy the editable part. There is no automatic way to move a category page in the way one moves an article page. For categories entirely populated through templates (see above) modifying the templates enables all affected articles to be moved to another category, but with the refresh problem mentioned. Almost all category "moves" are made pursuant to a consensus decision by LIMSwiki admins.
Redirecting a category page is possible, but will not cause pages to be recategorized from the redirected category to the target. On LIMSwiki soft redirects are preferred for categories, using the {{Category redirect}} template, and bots are used to move pages from redirected categories.
Searching for articles in categories
In addition to browsing through hierarchies of categories, it is possible to use the search tool to find specific articles in specific categories. To search for articles in a specific category, type incategory:"CategoryName" in the search box.
An "OR" can be added to join the contents of one category with the contents of another. For example, enter
- incategory:"Suspension bridges" OR incategory:"Bridges in New York City"
to return all pages that belong to either (or both) of the categories, as here.
Note that using search to find categories will not find articles which have been categorized using templates.
"Related Changes" with categories
For a category, the "[Related Changes" feature, applied to the corresponding category page, lists recent changes to the pages currently listed as belonging to that category. Where those pages are subcategories or image pages, only changes to their editable parts are listed.
Notice that "Related Changes" does not list recent changes to pages linked from the editable part of the category page (as it would normally, with a non-category page). (If a workaround is required for this, the links in question could be placed in a template and transcluded onto the category page.)
As usual (unlike with watchlists) recent changes to corresponding talk pages are not shown under "Related Changes". Pages you are watching are bolded on the list (this can be helpful for finding which pages in a given category you have on your watchlist).
"Related Changes" can be used to find pages which have recently been added to a category (unless they were added through modification of a template; then "What links here" should be used with the template). However it is not possible to detect deletions from a category in this way (since once pages have been removed from a category, their edits no longer show up in Related Changes). Another way of finding recent additions is to use an API query; see Retrieving category information below.
Listing all categories
Special:Categories provides an alphabetic list of all categories, with the number of members of each; this number does not include the content of the subcategories, but it includes the subcategories themselves, i.e., each counting as one.
The above list contains all categories that have members, regardless of whether they have corresponding category pages. To list all existing category pages (regardless of whether they have members), use Special:AllPages/Category:.
Displaying category trees and page counts
As described at mw:Help:Magic words, {{PAGESINCATEGORY:Example}} or {{PAGESINCAT:Example}} returns the number of pages in "Category:Example". Each subcategory counts as one page; pages in subcategories are not counted.
The page Special:CategoryTree enables you to see the tree structure of a category (its subcategories, their subcategories and so on; the display of files and other member pages is optional).
The CategoryTree extension can be used to display such a tree on any page. (This is sometimes done on the category page itself, if the category is split over multiple screens, to make all subcategories available on every screen.) The basic syntax is
<categorytree>Category name</categorytree>
to display just the subcategory tree, and
<categorytree mode=pages>Category name</categorytree>
to display member pages as well.
Retrieving category information
Raw information about the members of a category, their sortkeys and timestamps (time when last added to the category) can be obtained from the API, using a query of the form:
- http://en.wikipedia.org/w/api.php?cmtitle=Category:Category_name&action=query&list=categorymembers&cmlimit=500&cmprop=title|sortkey|timestamp
Listings of up to 500 members are possible. If there are more members then the results will include text near the end like this: <categorymembers cmcontinue="page|NNNN|TITLE" />
.
This can be added to the previous one, without quotation marks, for the next page of members: ...&cmcontinue=page|NNNN|TITLE
Category intersection, union, etc.
Various MediaWiki extensions allow intersection of categories, union of categories, display of info about the pages in a category, and more:
- Semantic MediaWiki
- Main Page - start page
- Introduction - allows further intersection with sets of pages defined in terms of relations and attributes
- Inline queries - provides relation- and attribute-related info about the selected pages and in-page display on any page of categories the same or another page is in*Forum
- intersection of categories and complements of categories
- provides the time of last edit for each page
- Category-/Linkintersection - a toolserver tool to query articles based on boolean expressions of their categories (and, or, not).
They all also allow further restriction to a namespace; some allow also restriction to a union of namespaces, or the complement of a union of namespaces. They all allow the info to be displayed in any page, not just a separate category page.
For category flattening (displaying the articles in a category's subcategories, sub-subcategories, etc.) see *category flattening with Semantic MediaWiki. See also m:Category flatten, and Wikimedia bug 1497.