WP-CFM lets you copy database configuration to / from the filesystem. Easily deploy configuration changes without needing to copy the entire database. WP-CFM is similar to Drupal’s Features module.
How will WP-CFM benefit me?
- Less need to copy over the entire database.
- No more rushing to figure out which settings you forgot to change.
- Easily track and version configuration changes via git, subversion, etc.
Which data does WP-CFM support?
- WP settings (
- Multisite settings (
- Taxonomy terms
- Custom Field Suite field groups
- Bundle – A group of (one or more) settings to track
- Push – Export database settings to the filesystem
- Pull – Import file-based settings into the database
WP-CFM supports [pull / push / diff] of bundles from the command-line using WP-CLI:
wp config pull [bundle_name] wp config push [bundle_name] wp config diff [bundle_name] wp config bundles wp config show_bundle [bundle_name]
You can optionally set
bundle_name to “all” to include all bundles.
--network flag to include multisite bundles.
See the filters reference page at the GitHub Wiki.
- Download and activate the plugin.
- Browse to
Settings > WP-CFMto configure.
Contributors and Developers
“WP-CFM” is open source software. The following people have contributed to this plugin.Contributors
- Fix: Tested with latest WordPress release v6.0.2. Removing the plugin outdated notice at WordPress.org plugin repository.
- Fix: Pantheon Quick Silver hooks silently failing to pull updated configuration.
- Fix: PHP notice “WP_Scripts::localize was called incorrectly”. The $l10n parameter must be an array.
- Improved: Fix Warning invalid argument supplied on CLI command.
- Improved: Cache results of WPCFM_Registry::get_configuration_items() (props @fariasf).
- New: Added
--formatparameter for the bundles command to retrieve bundle information from the CLI (props @gilzow).
- Improved: Use
WP_HOMEsince this one isn’t always guaranteed to be set (props @kyletaylored).
- Fix: Warning invalid argument supplied for foreach() on CLI command (props @adnoh).
- Improved: Following WordPress best practices. Including CSS and JS scripts for plugin admin page using
- New: Filters
wpcfm_current_envto activate multiple environments functionality.
- New: Detects Pantheon hosting automatically and activates the multiple environments functionality. Registers out of the box
- New: Filter
wpcfm_is_ssotadds capability to set configuration bundles as the Single Source of Truth (SSOT), rather than the database, for all tracked options.
- Fix: Tested with latest WordPress 5.2.1. Removing the plugin outdated notice at WordPress.org plugin repository.
- New: Toggle to show/hide already registered options (props @mickaelperrin)
wpcfm_config_formatfilter allow export configuration as YAML files (props @mickaelperrin)
- New: Check configuration file exist before import (props @mickaelperrin)
- Fix: File bundle properties are not checked (props @mickaelperrin)
- Fix: Import wp-cfm settings (props @mickaelperrin)
- Fix: Bad PHP Version comparison (props @mickaelperrin)
- Fix: Undefined constant WPCFM_CONFIG_FORMAT_REQUESTED (props @mickaelperrin)
- Improved: Better Custom Field Suite plugin detection (props @s3ththompson)
- Fix: only the first taxonomy was showing in the admin UI (props @Rebenton)
wpcfm_config_dirfilter (customize config dir)
wpcfm_config_urlfilter (customize config url)
- Fix: issue with .dot files in config directory
- Fix: PHP7 warning
- Fixed: WP-CLI diff (props @mortana42)
- Fixed: pulls broken due to taxonomy bug
- Fixed: Custom Field Suite support
- Improved: code formatting
- Wrapped CFS integration into a class
- Removed unnecessary diff code
- Code formatting tweaks
- New: support for taxonomy terms
- Improved: better usability for response messages
- Improved: replaced multiselect UI tool
- Fixed: diff viewer highlighting issues
- Added screenshots
- wp-cli diff support (props @joshkoenig)
- wp-cli show bundles support (props @joshkoenig)
- wp-cli get bundle details (props @joshkoenig)
- Fix for bundle deletion
- Better WP-CLI network support
- Now using “wp_mkdir_p” to check for writable config folder
- Updated translations
- Multisite support (props @alfreddatakillen)
- Added download link for each bundle (props @alfreddatakillen)
- Notification when the same option is stored in multiple bundles
- Subclasses can be accessed as base class variables
- Fix: ensure that “old_value” exists
- Updated translations
- Made “diff viewer” close button appear clickable
- Fixed bug with Custom Field Suite and loop sub-fields
- Added support for a config option label
- Admin UI now recognizes file bundles
- Better error handling
- Synchronize bundle config options list with file during Pull
- Added i18n support
- Fallback for JSON_PRETTY_PRINT when PHP < 5.4
- Fixed PHP notices when doing Pulls
- Excluded some unnecessary CFS config options
- Added relative plugin URL (props @tormjens)
- Added subtle admin screen animations
- Better file error handling
- CFS integration – each field group now has its own configuration item
- Moved the “all” bundle handler from the ajax class to readwrite
- Fix: error when Custom Field Suite isn’t active
- Custom Field Suite integration