boxuk/boxuk-base-wp-plugin

Installs: 1 178

Dependents: 0

Suggesters: 0

Security: 0

Stars: 3

Watchers: 5

Forks: 0

Type:wordpress-plugin

v0.4.0 2021-10-26 12:29 UTC

This package is auto-updated.

Last update: 2024-04-29 04:59:37 UTC


README

Box UK Logo

BoxUK WordPress Base Plugin

A WordPress plugin that includes a number of things to help us work on WordPress projects.

GPLv2 License

WP-CLI

We provide the following useful WP-CLI commands:

  • wp i18n-twig make-pot - which is an extension of wp i18n to add twig support to the make-pot command (only available if timber and twig is installed)
  • wp scaffold boxuk-mu-plugin - which is an extension of wp scaffold to add support for scaffolding an opinionated mu-plugin

DependencyInjection

The plugin is registered with the container from the Box UK WP Project Skeleton via an extension within src/DependencyInjection this works just like Symfony bundles, for information in the Symfony docs.

Hooks

Added support for tagging services in order to decouple hooks from the service, e.g.

services:
    _defaults:
        autowire: true
        autoconfigure: true

    BoxUk\Mu\Plugins\MyPlugin\MyService:
        tags:
            - { name: 'wp_hook', action: 'init', method: 'something_to_do_on_init' }

action can be replaced with filter when using a filter. priority and accepted_args also supported.

DB Repositories

We wrap database query access in repository classes for an easier abstraction dealing with querying the database. This follows a loose repository pattern.

Feature Flags

There is a helper you can use when developing with feature flags which will allow you to configure flags in yaml. Usage is as follows:

boxuk_container()->get('BoxUk\Plugins\Base\FeatureFlag\FeatureFlagManager')->register_from_yaml(
__DIR__ . '/flags.yaml' );

Gutenberg

It's useful to allow a phased approach to enabling gutenberg across a site. This helper will allow you to use tags in order to 'turn on' gutenberg for select posts easily.

Security

Provides a number of security enhancements by default:

  • Remove users endpoints from the REST API
  • 404s author queries to protect against author enumeration
  • Sets X-Frame-Options header to SAMEORIGIN to protect against clickjacking

License

GPLv2