Developer guide

Developer guide

How PeoplePress is put together and where to hook into it.

This area is still changing. Steps and screenshots may lag behind the current release.

PeoplePress is a modular WordPress plugin: a small bootstrap layer, a service container, and a set of modules that register themselves against a defined lifecycle. Addons are not a special case — they register a module the same way the twelve core modules do.

Start with the architecture, which covers boot order and where each piece of the system is wired up.

Conventions

These are enforced by the project's coding standards, and matching them is the fastest way to get an addon reviewed:

  • Classes are prefixed PP_, functions pp_.
  • Class files are named class-{lowercase-name}.php; function files pp-{name}-functions.php.
  • The namespace root is PeoplePress\, mapped to src/.
  • Every PHP file opens with defined( 'ABSPATH' ) || exit;.

Reference material

The REST namespace is peoplepress/v1; controllers extend WP_REST_Controller and are registered from a module's rest_api_init(). Full route reference is not written yet — see data/topics.yml in the content repository for the backlog.

On this page