johnpbloch / wordpress-core-installer

A composer installer for WordPress core so I can stop saying core is a wordpress-plugin type package.
https://packagist.org/packages/johnpbloch/wordpress-core-installer
GNU General Public License v2.0
207 stars 48 forks source link

WordPress Core Installer

Build Status codecov License: GPL v2 Packagist GitHub tag

A custom Composer plugin to install WordPress core outside of vendor.

This installer is meant to support a rather specific WordPress installation setup in which WordPress is installed in a subdirectory (see the WordPress codex on that subject) and in which the location of WP_CONTENT_DIR and WP_CONTENT_URL have been customized to be outside of WordPress core (see the WordPress codex on that subject). This is because composer will delete your whole wp-content directory every time it updates core if you don't separate the two. If that installation setup isn't what you are looking for, then this installer is probably not something you will want to use.

For more information on this site setup and using Composer to manage a whole WordPress site, check out @Rarst's informational website which also includes a site stack example using this package.

Usage

To set up a custom WordPress build package to use this as a custom installer, add the following to your package's composer file:

"type": "wordpress-core",
"require": {
    "johnpbloch/wordpress-core-installer": "^2.0"
}

If you need to maintain support for PHP versions lower than 5.6 (not recommended!), use ^1.0 as your version constraint in the above.

By default, this package will install a wordpress-core type package in the wordpress directory. To change this you can add the following to either your custom WordPress core type package or the root composer package:

"extra": {
    "wordpress-install-dir": "custom/path"
}

The root composer package can also declare custom paths as an object keyed by package name:

"extra": {
    "wordpress-install-dir": {
        "wordpress/wordpress": "wordpress",
        "johnpbloch/wordpress-core": "jpb-wordpress"
    }
}

License

This is licensed under the GPL version 2 or later.

Changelog

2.0.0
1.0.0