title | nav_order |
---|---|
Configuration |
4 |
{: .no_toc }
{: .no_toc .text-delta }
- TOC {:toc}
WP Starter can work without any setup at all, however one of its greatest features is its flexibility that allows for fine-grained customization of every aspect according to the project requirements.
Like other Composer plugins, WP Starter configuration goes into extra
section of composer.json
.
More specifically, it goes into a sub-object wpstarter
in the extra
section.
{
"extra": {
"wpstarter": {
"config-name": "config value"
}
}
}
For better readability and portability it is also possible to have, in the same folder as composer.json
, a file named wpstarter.json
containing only WP Starter configuration (anything that would go in the extra.wpstarter
object):
{
"config-name": "config value"
}
If that file is present, WP Starter will recognize it and will load configuration from there.
Instead of using a file named wpstarter.json
in root folder it is also possible to tell WP Starter to use a different file to load configuration.
A use case could be to reuse the same WP Starter configuration for many websites that resides under the same parent folder.
To do this, in composer.json
it is necessary to use the extra.wpstarter
configuration to set the path of the custom file. The path must be relative to the folder containing the composer.json
:
{
"extra": {
"wpstarter": "../wpstarter-shared-config.json"
}
}
This also enables to have the configuration file available in a separate Composer package and make it available to WP Starter by pointing to the file in vendor folder:
{
"extra": {
"wpstarter": "./vendor/my-company/wp-starter-shared/config.json"
}
}
When having both wpstarter.json
file and extra.wpstarter
section in composer.json
, WP Starter will load configuration from both, but in case the same setting is set in both places, the wpstarter.json
file takes precedence, also in the case extra.wpstarter
is not a literal object but a path to a separate configuration file.
There are two configuration values that affect WP Starter that cannot be placed inside the extra.wpstarter
object, nor can they be set in wpstarter.json
:
"wordpress-install-dir"
"wordpress-content-dir"
These two configuration values might contain a custom path where to place, respectively, WordPress core files and WordPress "content packages": plugin, themes, MU plugins, and dropins.
"wordpress-install-dir"
is not even a WP Starter specific configuration, but was first introduced by the John P. Block's WordPress core installer and then also supported by Roots' one.
Regardless of whether any of the above WordPress core installers is used, wordpress-install-dir
configuration is required to tell WP Starter where WordPress core files are located. It defaults to "./wordpress"
meaning a wordpress
folder inside project root.
"wordpress-content-dir"
has been introduced by WP Starter and it is located differently from other WP Starter settings to be in symmetry with "wordpress-install-dir"
. It defaults to "./wp-content"
meaning a wp-content
folder inside project root.
Next: WP Starter Steps