Overview
Both ACF and ACF PRO can be installed using Composer.
These instructions cover how to install the free version of ACF with Composer. Please view Installing ACF PRO with Composer for details of how to use ACF PRO with Composer.
Add Our Repository
Add our repository to your composer.json
file:
"repositories": [
{
"type":"composer",
"url":"https://composer.advancedcustomfields.com"
}
]
Install the Plugin
From the CLI, require ACF using the following command:
composer require wpengine/advanced-custom-fields
Version Constraints
You can use any Composer version constraints, or specify the exact version of the plugin:
"require": {
"wpengine/advanced-custom-fields": "6.3.9"
}
Customizing Install Locations
We use composer/installers to automatically install our plugin package to wp-content/plugins/
. However, you can customize the install location by adding the following to your composer.json
file:
"extra": {
"installer-paths": {
"wp-content/plugins/{$name}/": ["type:wordpress-plugin"]
}
}
Installing as an MU Plugin
If you prefer to install ACF as a must use plugin (mu-plugin), to ensure it will always be loaded by WordPress and can’t be deactivated from the admin dashboard like a normal plugin, you can alter the install location by adding the following to your composer.json
file:
"extra": {
"installer-paths": {
"wp-content/mu-plugins/{$name}/": ["wpengine/advanced-custom-fields"]
}
}
However, plugin directories inside the mu-plugin
directory will not be loaded automatically by WordPress, so you would need to require it manually with an acf.php
file in the mu-plugin
directory root:
<?php
require_once WPMU_PLUGIN_DIR . '/advanced-custom-fields/acf.php';
As an alternative, there is a package that automatically handles loading directories in the mu-plugin
directory.
Example composer.json
{
"name": "wpengine/composer-test.dev",
"description": "ACF in a WordPress site",
"repositories": [
{
"type":"composer",
"url":"https://composer.advancedcustomfields.com"
}
],
"require": {
"wpengine/advanced-custom-fields": "^6",
}
}