A template repository for building WordPress sites with WP Engine Pipelines.
This repository provides a starting point for WordPress development with WP Engine Pipelines. It follows the wp-content structure pattern where you commit only your custom themes, plugins, and mu-plugins. WordPress core and platform dependencies are handled automatically by the build process in your WP Engine pipeline.
- Composer installed locally
- Click "Use this template" to create your repository
- Clone your new repository locally
- Run
composer installto download the starter theme - Add your plugins and themes (via Composer or manually)
- Commit all files, including installed dependencies
- Push to trigger a build
Note: Remove
.github/CODEOWNERSafter creating your repo — it's used for template maintenance and isn't needed in your project.
├── config/ # WordPress configuration constants
├── plugins/ # Your WordPress plugins
├── themes/ # Your WordPress themes (required)
├── mu-plugins/ # Your must-use plugins
├── composer.json # Dependency management
└── composer.lock # Locked dependency versions
The default TwentyTwentyFive theme is included via Composer — run composer install and commit the result before pushing.
Warning
At least one committed WordPress theme is required in the themes/ directory. Builds will fail if none is present.
Place WordPress plugins in the plugins/ directory, or install via Composer.
Place mu-plugins in the mu-plugins/ directory. WP Engine's required mu-plugins are automatically installed during the pipeline's build process.
Important
Do not store secrets (credentials, API keys) here. Sensitive values can be set in the WP Engine User Portal.
config/config.php is available for non-sensitive WordPress constants. The file is loaded after platform-managed constants, so platform values take precedence and cannot be overridden.
Use a guard before every define() call:
if ( ! defined( 'MY_CONSTANT' ) ) {
define( 'MY_CONSTANT', true );
}The starter config/config.php includes a commented-out example to get you started.
The following are managed by WP Engine and should NOT be committed:
- WordPress Core (
wp-admin/,wp-includes/, etc.) wp-config.phpuploads/- Object cache drop-in (
object-cache.php) - WP Engine mu-plugins
This template uses WPackagist to install plugins and themes from WordPress.org.
composer installcomposer require wpackagist-plugin/plugin-namecomposer require wpackagist-theme/theme-nameThe pipeline's build process does not run composer install. You must commit all installed files (themes, plugins) to your repository. Use Composer for local dependency management, then commit the results.
By default, WP Engine automatically manages your WordPress core version and applies patch updates. You can optionally pin your site to a specific major version of WordPress using the composer.json configuration.
To set a specific WordPress major version, add the wordpress_core_version field to your composer.json:
{
"extra": {
"wpengine": {
"wordpress_core_version": "6.9"
}
}
}- Major versions only: Use the format
"6.9"or"7.0" - Patch-level versions are not supported: Values like
"6.9.4"are invalid - Automatic patch updates: The platform automatically applies security and patch updates within the specified major version
If the wordpress_core_version field is absent or empty, the platform applies its default WordPress version with automatic updates. No configuration is needed if you prefer this behavior.
Generally, the last 3 major versions will be supported. Please reach out to support if you encounter any issues.
For local development, you need a separate WordPress installation. This repository provides only wp-content files.
Recommended options:
- Local by WP Engine
- Docker with a WordPress image
- Standard LAMP/LEMP stack
Symlink or copy this repository's directories into your local WordPress wp-content/.
The following occurs when you push to a repository once you have configured a pipeline for it in the WP Engine User Portal:
- The pipeline clones your code.
- WP Engine's required plugins and mu-plugins are merged with your themes, plugins, and mu-plugins. WP Engine requirements overwrite committed code when paths conflict.
- The pipeline packages the bundled code.
- The package is deployed.
If your first push fails with an error like:
error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
fatal: the remote end hung up unexpectedly
This typically occurs when pushing large initial commits (themes with fonts/images). Increase Git's HTTP buffer size:
git config http.postBuffer 524288000Then retry your push.
MIT License - see LICENSE for details.