Help:Extensions
An extension lets you customise how MediaWiki looks and works.
- System administrators can install (or remove) extensions on the MediaWiki installations that they manage.
- Developers can write new extensions or contribute to existing extensions.
Use any extension, especially those tagged as insecure, at your own risk.If you are using an extension that requires patches to the core software, be sure to back up your database.This helps avoid the risk of breaking your wiki.
Selecting extensions
Bundled extensions
Several extensions are bundled with MediaWiki as standard.
These extensions should generally be of high utility, perform efficiently, be stable, be well-written, and have no known major security issues. They should also be compatible with the latest versions of MediaWiki, and with each other (i.e. one extension shouldn't block the functions of another). A bundled extension may have a dependency on one or more other extensions, as long as those are also bundled.
Site admins get these automatically when installing or upgrading MediaWiki. When upgrading MediaWiki, any extension upgrades will be automatically applied as well. Site admins may choose to uninstall any of these, if they wish.
There are open, ongoing discussions about which extensions should be part of this group. You can suggest additional extensions to be bundled . Extensions will be bundled once the developers reach a consensus to do so.
An extension may be removed from bundling if its functionality is merged into MediaWiki core, it is replaced by an alternative, or in the unlikely event of any unsolvable major security vulnerabilities being discovered.
Browsing extensions
Browse Category:All extensions , or Category:Extensions by category to see the full range of extensions that are available.
Checking installed extensions
Which extensions are active on an instance of MediaWiki can be checked by accessing the Special:Version page, and scrolling down to the heading Installed extensions (anchor #mw-version-ext
).
For example, these extensions are installed on this wiki, and these extensions are active in the English Wikipedia.
Popular extensions
There are a number of ways of finding popular extensions.
Extensions that are downloaded from MediaWiki.org via the ExtensionDistributor mechanism have some statistics gathered. The top 15 most downloaded extensions are listed at Special:ExtensionDistributor, and applicable extensions have their download count shown in their infobox. Note that these numbers do not account for alternative ways of installing extensions, such as via Git or Composer.
Another option is to look at WikiApiary 's counts of wikis that extensions are installed on. This has the advantage of representing actual installations and not just downloads (i.e. it queries the wiki's APIs), but it is also (as of 2023) not completely up-to-date. It also doesn't count installations on private wikis.
Installing an extension
- For further guidance, see also Manual:Extensions/Installation and upgrade
MediaWiki is ready to accept extensions just after installation is finished. To add an extension follow these steps:
- Before you start
- Many extensions provide instructions designed for installation using Unix commands. You require shell access (SSH) to enter these commands listed on the extension help pages.
- Download your extension.
- Extension Distributor helps you to select and download most of the popular extensions.
- Extensions are usually distributed as modular packages. They generally go in their own subdirectory of
$IP /extensions/
. A list of extensions stored in the Wikimedia Git repository is located at git:mediawiki/extensions. Some extensions don't use version control and are not recommended. - Some extensions are also available in bundles, composer or package repositories.
- It's recommended to read the README file before installation. It usually contains important info about configuration.
- Install your extension.
- At the end of the
LocalSettings.php
file, add: wfLoadExtension( 'ExtensionName' );
- This line forces the PHP interpreter to read the extension file, and thereby make it accessible to MediaWiki.
- Some extensions can conflict with maintenance scripts, for example if they directly access $_SERVER (not recommended).
- In this case they can be wrapped in the conditional so maintenance scripts can still run.
if ( !$wgCommandLineMode ) { wfLoadExtension ( 'ExtensionName' ); }
- The maintenance script importDump.php will fail for any extension which requires customised namespaces which is included inside the conditional above such as Extension:Semantic MediaWiki , Extension:Page Forms .
- At the end of the
- Ensure that required permissions are set for extensions!
- While this installation procedure is sufficient for most extensions, some require a different installation procedure. Check your extension's documentation for details.
- If you want to alter configuration variables in
LocalSettings.php
, you have to do this typically after including the extension. Otherwise defaults defined in the extension will overwrite your settings.
Upgrading an extension
Some extensions require to be updated whenever you update MediaWiki, while others work with multiple versions. To upgrade to a new version of an extension:
- Download the new version of the extension
- Replace all the extension files in the
extensions/ExtensionName
directory with the new files. Do not remove the extension configuration present inLocalSettings.php
- If the extension requires changes to the MediaWiki database, you will need to run the update.php maintenance script. Most extensions will mention if this script needs to be run or not. (Perform backup of your data before executing the script). If you don't have command line access, you can also use the web updater.
Uninstalling an extension
Remove the line from LocalSettings.php
with the extension name to uninstall it:
wfLoadExtension( 'ExtensionName' );
- You must also remove any lines pertaining to the configuration of the extension.
Developing extensions
MediaWiki core provides several ways for extensions to change the behavior and appearance of a wiki. These extension points give extensions flexibility to add features and functionality, such as displaying a special page or defining an API module. To get started, see the guide to developing extensions . Before writing a new extension, consider contributing to an existing extension or helping with an unmaintained extension .
Users can also make a general request on Phabricator, and hope that your good idea is picked up by a developer. See https://phabricator.wikimedia.org/tag/mediawiki-extension-requests/
See also
- Category:Extensions
- Template:Extension
- Manual:Developing extensions
- Manual:Translating extensions - Information about translating extensions.
- Special:ExtensionDistributor - Includes a list of the 15 most downloaded extensions in Wikimedia version control
- extloc - Where are MediaWiki extensions deployed in Wikimedia production?
- API:SiteInfo extension information