Introduction to modules

Learn about what modules are, what different flavors of modules are available, how to install them, and where to get them.

What are modules?

At the simplest level, a module is a PHP file containing a class that adheres to ProcessWire’s Module interface. Modules enable a high level of extensibility and customization to ProcessWire. Much of ProcessWire itself is a collection of plugin modules. In fact, the ProcessWire admin application is just a group of modules.

Core modules and site modules

In ProcessWire, there are Core modules and Site modules. Core modules (stored in /wire/modules/) are modules that are included with the core, many of which come pre-installed since they provide much of the functionality in ProcessWire. On the other hand, Site modules (stored in /site/modules/) are those that you obtain separately (or create) and install yourself.

How modules are installed

Installing a Site module is as simple as uploading the module's files to the /site/modules/ModuleName/ directory on your server (where ModuleName is the name of the module) and then clicking Install in the Admin (Modules > Install). You can also install a module directly from the admin by uploading the ZIP file or providing the URL where it can be downloaded. Uninstalling a module is as simple as clicking Uninstall in the module's settings.

ProcessWire also comes with many Core modules that are not pre-installed, but are ready for 1-click installation. These can be listed and installed by navigating in the admin to Modules > Core.

Where to get modules

ProcessWire itself comes with many modules. The modules that are most likely to be used in all installations come pre-installed, while modules that are likely to be used in at least 30% of installations may not be pre-installed, but are included with the core and installable with one click (see Modules > Core). Many free third-party modules are available for from the modules directory. Several Pro modules (a type of commercial module developed by the lead developer of ProcessWire) are also available. You can also create your own modules, which is simple to do—see our section on module development.

Twitter updates

  • New post: Version 3.0.135 of ProcessWire on the dev branch focuses on some .htaccess updates, adds clarity to debug mode, and improves upon the installer— More
    5 July 2019
  • ProcessWire 3.0.133 adds a useful new Page::meta() method for a new type of page-specific persistent data storage, adds the ability for users to create their own bookmarks in Lister, and has a handy and time saving update for the asmSelect input type— More
    14 June 2019
  • New post: This week we’ll take a look at 3 different WEBP image strategies that you can use in ProcessWire 3.0.132+. Then we’ll dive into a major update for the Google Client API module, and finish up by outlining some useful new updates in FormBuilder— More
    31 May 2019

Latest news

  • ProcessWire Weekly #270
    This week in the 270th issue of ProcessWire Weekly we're going to cover the SearchEngine module, feature some recent support forum highlights, and introduce a brand new site of the week. Read on!
    Weekly.pw / 13 July 2019
  • ProcessWire 3.0.135 core updates
    Version 3.0.135 of ProcessWire on the dev branch focuses on .htaccess updates, adds additional layers of security, adds clarity to debug mode, and improves upon the installer.
    Blog / 3 July 2019
  • Subscribe to weekly ProcessWire news

“…building with ProcessWire was a breeze, I really love all the flexibility the system provides. I can’t imagine using any other CMS in the future.” —Thomas Aull