PHPackages                             mtwango/wordpress-plugin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mtwango/wordpress-plugin

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

mtwango/wordpress-plugin
========================

Composer Plugin for Wordpress sites

1.2.0(2mo ago)01.6k↓100%MITPHPPHP ^8.2CI passing

Since Jul 6Pushed 2mo agoCompare

[ Source](https://github.com/mtwango/wordpress-plugin)[ Packagist](https://packagist.org/packages/mtwango/wordpress-plugin)[ RSS](/packages/mtwango-wordpress-plugin/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (10)Versions (4)Used By (0)

WordPress Composer Plugin
=========================

[](#wordpress-composer-plugin)

[![Tests](https://github.com/mtwango/wordpress-plugin/actions/workflows/tests.yml/badge.svg)](https://github.com/mtwango/wordpress-plugin/actions/workflows/tests.yml)

Composer plugin to symlink paths to create Composer based WordPress installation.

Install / update
----------------

[](#install--update)

To install / update the latest stable version of this component, open a console and execute the following command:

```
composer require mtwango/wordpress-plugin

```

Includes
--------

[](#includes)

This plugin will also require for you the following packages:

- composer/installers:^2.3
- cweagans/composer-patches:^2.0

Usage
-----

[](#usage)

### Configuration

[](#configuration)

WordPress' plugins and themes repository must be defined:

```
{
    "repositories": [
        {
            "type": "composer",
            "url": "https://wpackagist.org",
            "only": [
                "wpackagist-plugin/*",
                "wpackagist-theme/*"
            ]
        }
    ]
}
```

Plugin default values (AKA you don't need to add these if not overriding):

```
{
    "extra": {
        "wordpress-plugin": {
            "composer-exit-on-patch-failure": true,
            "installer-paths": {
                "johnpbloch/wordpress-core": ["type:wordpress-core"],
                "${webroot}/wp-content/plugins/{$name}": ["type:wordpress-plugin"],
                "${webroot}/wp-content/themes/{$name}": ["type:wordpress-theme"]
            },
            "symlinks": {
            },
            "symlinks-force-create": false,
            "symlinks-skip-missing-target": false,
            "symlinks-absolute-path": false,
            "symlinks-throw-exception": true,
            "webroot": "public"
        }
    }
}
```

### .gitignore

[](#gitignore)

This plugin has example `.gitignore` included in `assets` folder, which ignores WordPress Core and by default all plugins. There is an example how to exclude custom plugins from `.gitignore`. You are free to copy it to your webroot or modify it and have it elsewhere.

### Symlinking

[](#symlinking)

Create the symlinks to `extra.wordpress-plugin.symlinks` section.

- Set `symlinks-skip-missing-target` to true if we should not throw exception if target path doesn't exist
- Set `symlinks-absolute-path` to true if you want to create realpath symlinks
- Set `symlinks-throw-exception` to false if you don't want to break creating on some error while check symlinks
- Set `symlinks-force-create` to force unlink link if something already exists on link path

You can set personal configs for any symlink.

For personal configs `link` must be defined

```
{
    "extra": {
        "wordpress-plugin": {
            "symlinks": {
                "vendor/namespace/must-use": "public/wp-content/mu-plugins/must-use"
            },
            "symlinks-force-create": false,
            "symlinks-skip-missing-target": false,
            "symlinks-absolute-path": false,
            "symlinks-throw-exception": true
        }
    }
}
```

WordPress
---------

[](#wordpress)

### Core

[](#core)

As WordPress core, it is intended to use package `johnpbloch/wordpress-core`

### Updates

[](#updates)

If you want to manage your WordPress core, themes and plugins with Composer, you should disable automatic updates. You can use plugins to do that, for example [Easy Updates Manager](https://wordpress.org/plugins/stops-core-theme-and-plugin-updates/). Or you can either use included plugin `composer-plugin-no-updates` (in *mu-plugins* folder or in *plugins* folder, if you want to be able to disable it) or following manual configuration:

To **disable WordPress Core updates**, add following line in your `wp-config.php`:

```
define( 'WP_AUTO_UPDATE_CORE', false );
```

To **disable plugin and theme updates**, you need to use filters in your theme's `functions.php` file:

```
add_filter( 'auto_update_plugin', '__return_false' );
add_filter( 'auto_update_theme', '__return_false' );
```

Testing
-------

[](#testing)

Install with dev dependencies:

```
composer install

```

Run tests from root:

```
./vendor/bin/phpcs src --standard=Drupal --colors

```

Forked from
-----------

[](#forked-from)

This plugin is based on [Mona Composer Plugin](https://github.com/druidfi/mona-plugin) and modified to be used with WordPress Composer based installations. WordPress Composer Plugin is released under same license.

License
-------

[](#license)

This component is under the MIT license. See the complete license in the [LICENSE](LICENSE) file.

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance94

Actively maintained with recent releases

Popularity19

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 68.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~486 days

Total

3

Last Release

64d ago

PHP version history (2 changes)1.0.0PHP ^7.4 || ^8.0

1.2.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/6c3f28e44c920e04b20e33bc436d9fb2e12595f7e8247ec1a2f93990d9eadf07?d=identicon)[Mulambo](/maintainers/Mulambo)

---

Top Contributors

[![back-2-95](https://avatars.githubusercontent.com/u/1140272?v=4)](https://github.com/back-2-95 "back-2-95 (62 commits)")[![mtwango](https://avatars.githubusercontent.com/u/40821415?v=4)](https://github.com/mtwango "mtwango (18 commits)")[![somework](https://avatars.githubusercontent.com/u/19801428?v=4)](https://github.com/somework "somework (9 commits)")[![pandmitr](https://avatars.githubusercontent.com/u/6427560?v=4)](https://github.com/pandmitr "pandmitr (2 commits)")

###  Code Quality

Static AnalysisPHPStan, Psalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/mtwango-wordpress-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/mtwango-wordpress-plugin/health.svg)](https://phpackages.com/packages/mtwango-wordpress-plugin)
```

###  Alternatives

[farmos/farmos

A web-based farm record keeping application.

1.2k6.7k1](/packages/farmos-farmos)[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[php-composter/php-composter

Git Hooks Management through Composer.

10525.1k11](/packages/php-composter-php-composter)[uma/composer-psysh

No-frills PsySH-Composer plugin

183.2k](/packages/uma-composer-psysh)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
