MediaWiki extensions manual
Category Tests
Release status: stable
Implementation Parser function
Description Provides a set of parser functions check for categories
Author(s) Ryan Schmidt (Skizzerztalk)
Latest version 1.6.0 (2017-10-28)
MediaWiki 1.32+
PHP 5.3+
License GNU General Public License 2.0 or later
Quarterly downloads 3 (Ranked 134th)
Translate the CategoryTests extension if it is available at translatewiki.net

The CategoryTests extension provides a set of dynamic parser functions that check for categories.



This currently defines 3 parser functions for category testing.

  • {{#ifcategory:category|then|else|page}}
Tests if the given page is in the category given, then displays "then" or "else" (or current page if no page is given).
  • {{#ifnocategories:then|else|page}}
Tests if the given page does not belong in any categories, then displays "then" or "else" (or current page if no page is given).
  • {{#switchcategory:category1=result1|category2=result2|...|default}}
Operates like the ParserFunctions #switch , but doesn't take an initial parameter (it just starts cycling through right away) and tests if the page is in those categories instead of comparing it to a value. You can specify to test other pages using #page=pagename, where it would then test that page instead of the current page until the next #page definition, in which case it will test that page now instead. Making #page empty resets it to the current page. If your default case needs an equals sign, you may use #default to declare it.


  • Download and move the extracted CategoryTests folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTests
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'CategoryTests' );
  •   Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

See also

  • ParserFunctions - For more general conditional constructs
  • PageInCat - The main difference seems to be that PageInCat will always try to use categories from the current revision, while CategoryTests may sometimes use the categories from the previous revision, which could result in unexpected page content