{"id":32109,"date":"2026-03-12T08:24:33","date_gmt":"2026-03-12T13:24:33","guid":{"rendered":"https:\/\/wpengine.com\/builders\/?p=32109"},"modified":"2026-03-12T10:15:37","modified_gmt":"2026-03-12T15:15:37","slug":"deploying-composer-based-wordpress-site-to-wp-engine","status":"publish","type":"post","link":"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/","title":{"rendered":"Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine"},"content":{"rendered":"\n<p>Modern WordPress development has increasingly embraced <a href=\"https:\/\/getcomposer.org\/\">Composer<\/a> as a way to manage dependencies and improve workflow consistency. Whether you&#8217;re using a custom Composer setup or a framework like <a href=\"https:\/\/roots.io\/bedrock\/\">Bedrock<\/a>, <a href=\"https:\/\/wpengine.com\/\">WP Engine<\/a> supports deploying these projects\u2014with a few adjustments.<\/p>\n\n\n\n<p>This guide covers how to structure and deploy a Composer-based site to WP Engine using GitHub Actions, including Bedrock-specific notes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Benefits of Using Composer for WordPress<\/h2>\n\n\n\n<p>Composer is a dependency management tool in PHP that offers several advantages for WordPress development:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dependency Management:<\/strong> Easily manage WordPress core, plugins, themes, and PHP packages.<\/li>\n\n\n\n<li><strong>Version Control:<\/strong> Keep track of exact versions of all dependencies, ensuring consistency across environments.<\/li>\n\n\n\n<li><strong>Automation:<\/strong> Automate updates and deployments, reducing manual errors.<\/li>\n\n\n\n<li><strong>Cleaner Repositories:<\/strong> Avoid committing vendor files or plugin code, keeping your repository clean and focused on custom code.<\/li>\n<\/ul>\n\n\n\n<p>By leveraging Composer, you can create a more maintainable and scalable WordPress project.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Managing Plugins and Themes with WPackagist<\/h2>\n\n\n\n<p><a href=\"https:\/\/wpackagist.org\">WPackagist<\/a> mirrors the WordPress.org plugin and theme directories as Composer packages, allowing you to manage them as dependencies.<\/p>\n\n\n\n<div class=\"wp-block-group has-border-color has-link-color has-small-font-size wp-elements-c3be1b32e6ef2052ad55a838d076ec37 has-global-padding is-layout-constrained wp-container-core-group-is-layout-9b866ece wp-block-group-is-layout-constrained\" style=\"border-color:#007eea;border-width:3px;border-radius:12px;margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-9c22b1e3 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-b2a27621 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:36px\">\n<div class=\"wp-block-outermost-icon-block items-justified-center\" style=\"margin-bottom:0;margin-left:0;margin-right:0;margin-top:0\"><div class=\"icon-container has-icon-color has-lapis-color\" style=\"color:#007eea;width:28px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;transform:rotate(0deg) scaleX(1) scaleY(1)\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M10 11c-1.588-.479-4-.91-4-.91s2-.241 4-.454c1.8-.191 3.365-.502 4-3.181C14.635 3.775 15 1 15 1s.365 2.775 1 5.455c.635 2.679 2 2.969 4 3.181 2 .213 4 .455 4 .455s-2.412.43-4 .909c-1.588.479-3 1-4 4.546-.746 2.643-.893 4.948-1 5.454-.107-.506-.167-2.5-1-5.454C13 12 11.588 11.479 10 11zM7.333 3.5C6.803 3.333 6 3.182 6 3.182s.667-.085 1.333-.16c.6-.066 1.122-.175 1.334-1.113C8.878.971 9 0 9 0s.122.971.333 1.91c.212.937.667 1.038 1.334 1.113.666.074 1.333.159 1.333.159s-.804.15-1.333.318c-.53.167-1 .35-1.334 1.59C9.085 6.017 9.036 6.824 9 7c-.036-.177-.056-.875-.333-1.91-.334-1.24-.804-1.423-1.334-1.59zM2.444 18C1.474 17.713 0 17.454 0 17.454s1.222-.145 2.444-.272c1.1-.115 2.057-.302 2.445-1.91C5.277 13.666 5.5 12 5.5 12s.223 1.665.611 3.273c.388 1.607 1.222 1.781 2.445 1.909 1.222.127 2.444.273 2.444.273s-1.474.258-2.444.545c-.971.287-1.834.6-2.445 2.727-.456 1.586-.546 2.97-.611 3.273-.065-.304-.102-1.5-.611-3.273C4.278 18.6 3.415 18.287 2.444 18z\"><\/path><\/svg><\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-container-core-column-is-layout-6ed3939d wp-block-column-is-layout-flow\">\n<p>At WP Engine, we believe that ensuring the stability and reliability of critical developer infrastructure is essential to the WordPress ecosystem. That&#8217;s why we&#8217;re now the maintainer of <a href=\"https:\/\/wpengine.com\/blog\/wp-engine-acquires-wpackagist\/\">WPackagist<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>To use WPackagist:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1. Add WPackagist as a repository in your <code>composer.json<\/code>:<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>{\n<\/span><\/span><span class='shcb-loc'><span>  <span class=\"hljs-attr\">\"repositories\"<\/span>: &#91;\n<\/span><\/span><span class='shcb-loc'><span>    {\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">\"type\"<\/span>: <span class=\"hljs-string\">\"composer\"<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">\"url\"<\/span>: <span class=\"hljs-string\">\"https:\/\/wpackagist.org\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    }\n<\/span><\/span><span class='shcb-loc'><span>  ]\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">2. Require plugins or themes using the <code>wpackagist-plugin<\/code> or <code>wpackagist-theme<\/code> prefixes:<\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>{\n<\/span><\/span><span class='shcb-loc'><span>  <span class=\"hljs-attr\">\"require\"<\/span>: {\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">\"wpackagist-plugin\/advanced-custom-fields\"<\/span>: <span class=\"hljs-string\">\"^6.0\"<\/span>,\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">\"wpackagist-theme\/twentytwentysix\"<\/span>: <span class=\"hljs-string\">\"*\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>  }\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">3. Run <code>composer install<\/code> to install the specified plugins and themes.<\/h4>\n\n\n\n<p>This approach ensures that your plugins and themes are version-controlled and can be easily updated or rolled back as needed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Project Structure Considerations<\/h2>\n\n\n\n<p>Typical Composer-based sites move the WordPress core files to a different directory, for example <code>\/web<\/code> or <code>\/public <\/code>and with that the <code>wp-content<\/code> directory housing the plugins and themes will move there too. However, this is a different structure expected by WP Engine as a managed hosting platform. Bedrock also organizes WordPress files differently than the traditional structure expected by WP Engine.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bedrock Structure:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>\u251c\u2500\u2500 composer.json\n<\/span><\/span><span class='shcb-loc'><span>\u251c\u2500\u2500 composer.lock\n<\/span><\/span><span class='shcb-loc'><span>\u251c\u2500\u2500 config\/\n<\/span><\/span><span class='shcb-loc'><span>\u251c\u2500\u2500 web\/\n<\/span><\/span><span class='shcb-loc'><span>\u2502   \u251c\u2500\u2500 app\/            <span class=\"hljs-comment\"># wp-content equivalent<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\u2502   \u251c\u2500\u2500 wp\/             <span class=\"hljs-comment\"># WordPress core<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\u2502   \u251c\u2500\u2500 index.php\n<\/span><\/span><span class='shcb-loc'><span>\u2502   \u2514\u2500\u2500 wp-config.php\n<\/span><\/span><span class='shcb-loc'><span>\u2514\u2500\u2500 .env\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">WP Engine Expected Structure:<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>\u251c\u2500\u2500 wp-content\/\n<\/span><\/span><span class='shcb-loc'><span>\u251c\u2500\u2500 wp-includes\/\n<\/span><\/span><span class='shcb-loc'><span>\u251c\u2500\u2500 wp-admin\/\n<\/span><\/span><span class='shcb-loc'><span>\u251c\u2500\u2500 index.php\n<\/span><\/span><span class='shcb-loc'><span>\u251c\u2500\u2500 wp-config.php\n<\/span><\/span><span class='shcb-loc'><span>...\n<\/span><\/span><\/code><\/span><\/pre>\n\n\n<p>To deploy a Composer or Bedrock-based site to WP Engine, you&#8217;ll need to restructure your project during the deployment process to match WP Engine&#8217;s expectations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deployment with GitHub Actions<\/h2>\n\n\n\n<p>Use <a href=\"https:\/\/github.com\/wpengine\/github-action-wpe-site-deploy\">WP Engine&#8217;s official GitHub Action<\/a> to automate deployments. This approach syncs your <code>wp-content\/<\/code> directory and runs Composer during the build step.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Standard Composer Setup<\/h3>\n\n\n\n<p>For sites using Composer with a standard WordPress structure:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>name: Deploy to WP Engine\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-attr\">on<\/span>:\n<\/span><\/span><span class='shcb-loc'><span>  push:\n<\/span><\/span><span class='shcb-loc'><span>    branches:\n<\/span><\/span><span class='shcb-loc'><span>      - main\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-attr\">jobs<\/span>:\n<\/span><\/span><span class='shcb-loc'><span>  deploy:\n<\/span><\/span><span class='shcb-loc'><span>    runs-on: ubuntu-latest\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">steps<\/span>:\n<\/span><\/span><span class='shcb-loc'><span>      - name: Checkout repository\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">uses<\/span>: actions\/checkout@v4\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      - name: Setup PHP\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">uses<\/span>: shivammathur\/setup-php@v2\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">with<\/span>:\n<\/span><\/span><span class='shcb-loc'><span>          php-version: <span class=\"hljs-string\">'8.2'<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-attr\">tools<\/span>: composer:v2\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      - name: Install Composer dependencies\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">run<\/span>: composer install --no-dev --optimize-autoloader --prefer-dist\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      - name: Deploy to WP Engine\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">uses<\/span>: wpengine\/github-action-wpe-site-deploy@v3\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">with<\/span>:\n<\/span><\/span><span class='shcb-loc'><span>          WPE_SSHG_KEY_PRIVATE: ${{ secrets.WPE_SSHG_KEY_PRIVATE }}\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-attr\">WPE_ENV<\/span>: your-environment-name\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-attr\">SRC_PATH<\/span>: wp-content\/\n<\/span><\/span><span class='shcb-loc'><span>          REMOTE_PATH: wp-content\/\n<\/span><\/span><span class='shcb-loc'><span>          FLAGS: -azvr --inplace --<span class=\"hljs-keyword\">delete<\/span> --exclude=<span class=\"hljs-string\">'uploads'<\/span>\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\"><strong>Including Composer Dependencies (Optional)<\/strong><\/h4>\n\n\n\n<p>If your plugins or themes require PHP packages from <code>vendor\/<\/code>, you&#8217;ll need to include it in the deployment. Since only <code>wp-content\/<\/code> is synced to WP Engine, copy vendor into <code>wp-content\/<\/code> and add a mu-plugin to load the autoloader:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>      - name: Install Composer dependencies\n<\/span><\/span><span class='shcb-loc'><span>        run: composer install --no-dev --optimize-autoloader --prefer-dist\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      - name: Prepare vendor <span class=\"hljs-keyword\">for<\/span> deployment\n<\/span><\/span><span class='shcb-loc'><span>        run: |\n<\/span><\/span><span class='shcb-loc'><span>          mkdir -p wp-content\/mu-plugins\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-comment\"># Create autoloader mu-plugin<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          cat &gt; wp-content\/mu-plugins\/<span class=\"hljs-number\">00<\/span>-autoloader.php &lt;&lt; <span class=\"hljs-string\">'EOF'<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-meta\">&lt;?php<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-comment\">\/**<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">           * Plugin Name: Composer Autoloader<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">           * Description: Loads the Composer autoloader.<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">           *\/<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-keyword\">if<\/span> (file_exists($autoloader = dirname(<span class=\"hljs-keyword\">__DIR__<\/span>) . <span class=\"hljs-string\">'\/vendor\/autoload.php'<\/span>)) {\n<\/span><\/span><span class='shcb-loc'><span>              <span class=\"hljs-keyword\">require_once<\/span> $autoloader;\n<\/span><\/span><span class='shcb-loc'><span>          }\n<\/span><\/span><span class='shcb-loc'><span>          EOF\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-comment\"># Copy vendor into wp-content for deployment<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          cp -r vendor wp-content\/\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      - name: Deploy to WP Engine\n<\/span><\/span><span class='shcb-loc'><span>        ...\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Composer&#8217;s autoloader uses relative paths, so it works correctly from <code>wp-content\/vendor\/<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bedrock Setup<\/h3>\n\n\n\n<p>For Bedrock projects, you&#8217;ll need to restructure from <code>web\/app\/<\/code> to <code>wp-content\/<\/code> during the build.<\/p>\n\n\n\n<p>Bedrock normally loads the Composer autoloader via its <code>wp-config.php<\/code>. Since WP Engine manages <code>wp-config.php<\/code>, the workflow below creates a mu-plugin to load it instead. The <code>00-<\/code> prefix ensures it loads before other mu-plugins.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>name: Deploy Bedrock to WP Engine\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>on:\n<\/span><\/span><span class='shcb-loc'><span>  push:\n<\/span><\/span><span class='shcb-loc'><span>    branches:\n<\/span><\/span><span class='shcb-loc'><span>      - main\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>jobs:\n<\/span><\/span><span class='shcb-loc'><span>  deploy:\n<\/span><\/span><span class='shcb-loc'><span>    runs-on: ubuntu-latest\n<\/span><\/span><span class='shcb-loc'><span>    steps:\n<\/span><\/span><span class='shcb-loc'><span>      - name: Checkout repository\n<\/span><\/span><span class='shcb-loc'><span>        uses: actions\/checkout@v4\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      - name: Setup PHP\n<\/span><\/span><span class='shcb-loc'><span>        uses: shivammathur\/setup-php@v2\n<\/span><\/span><span class='shcb-loc'><span>        with:\n<\/span><\/span><span class='shcb-loc'><span>          php-version: <span class=\"hljs-string\">'8.2'<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          tools: composer:v2\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      - name: Install Composer dependencies\n<\/span><\/span><span class='shcb-loc'><span>        run: composer install --no-dev --optimize-autoloader --prefer-dist\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      - name: Restructure <span class=\"hljs-keyword\">for<\/span> WP Engine\n<\/span><\/span><span class='shcb-loc'><span>        run: |\n<\/span><\/span><span class='shcb-loc'><span>          mkdir -p deploy\/wp-content\/mu-plugins\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-comment\"># Create autoloader mu-plugin (WP Engine manages wp-config.php, so we load it here)<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          cat &gt; deploy\/wp-content\/mu-plugins\/<span class=\"hljs-number\">00<\/span>-autoloader.php &lt;&lt; <span class=\"hljs-string\">'EOF'<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-meta\">&lt;?php<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-comment\">\/**<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">           * Plugin Name: Composer Autoloader<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">           * Description: Loads the Composer autoloader for WP Engine deployments.<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">           *\/<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-keyword\">if<\/span> (file_exists($autoloader = dirname(<span class=\"hljs-keyword\">__DIR__<\/span>) . <span class=\"hljs-string\">'\/vendor\/autoload.php'<\/span>)) {\n<\/span><\/span><span class='shcb-loc'><span>              <span class=\"hljs-keyword\">require_once<\/span> $autoloader;\n<\/span><\/span><span class='shcb-loc'><span>          }\n<\/span><\/span><span class='shcb-loc'><span>          EOF\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>          <span class=\"hljs-comment\"># Move app (wp-content equivalent) contents<\/span>\n<\/span><\/span><span class='shcb-loc'><span>          cp -r web\/app\/plugins deploy\/wp-content\/\n<\/span><\/span><span class='shcb-loc'><span>          cp -r web\/app\/themes deploy\/wp-content\/\n<\/span><\/span><span class='shcb-loc'><span>          cp -r web\/app\/mu-plugins<span class=\"hljs-comment\">\/* deploy\/wp-content\/mu-plugins\/ 2&gt;\/dev\/null || true<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">          cp -r web\/app\/languages deploy\/wp-content\/ 2&gt;\/dev\/null || true<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\"><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">          # Move vendor for Composer autoloading<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">          cp -r vendor deploy\/wp-content\/<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\"><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">      - name: Deploy to WP Engine<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">        uses: wpengine\/github-action-wpe-site-deploy<span class=\"hljs-doctag\">@v<\/span>3<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">        with:<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">          WPE_SSHG_KEY_PRIVATE: ${{ secrets.WPE_SSHG_KEY_PRIVATE }}<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">          WPE_ENV: your-environment-name<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">          SRC_PATH: deploy\/wp-content\/<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">          REMOTE_PATH: wp-content\/<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">          FLAGS: -azvr --inplace --delete --exclude='uploads'<\/span>\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Setup Requirements<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>SSH Key<\/strong>: Add your WP Engine SSH private key as a repository secret named <code>WPE_SSHG_KEY_PRIVATE<\/code>. Generate via WP Engine User Portal > SSH Keys.<\/li>\n<\/ol>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Environment Name<\/strong>: Replace <code>your-environment-name<\/code> with your WP Engine environment name.<\/li>\n<\/ol>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Branch Triggers<\/strong>: Adjust the <code>branches<\/code> trigger as needed (e.g., <code>main<\/code> for production, <code>staging<\/code> for staging).<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Important Notes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>WordPress core<\/strong>: WP Engine manages core files. Only deploy your <code>wp-content\/<\/code> or equivalent.<\/li>\n\n\n\n<li><strong>Uploads<\/strong>: Media uploads are not included in deployments. Use SFTP or WP Engine&#8217;s backup\/restore tools.<\/li>\n\n\n\n<li><strong>Vendor directory<\/strong>: Required for Bedrock to enable the mu-plugin directory loader and any Composer dependencies. Include the <code>00-autoloader.php<\/code> mu-plugin to load it.<\/li>\n\n\n\n<li><strong>Environment variables<\/strong>: Bedrock uses <code>.env <\/code>files. Ensure environment-specific config is handled appropriately for WP Engine.<\/li>\n\n\n\n<li><strong>First deploy<\/strong>: After your first deployment, log in to WordPress and activate your theme. The deploy uses <code>--delete<\/code> which removes the default theme, so you&#8217;ll need to activate the theme you deployed.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Further Reading<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/wpengine.com\/builders\/using-composer-manage-plugins-deploy\/\">Using Composer to Manage Plugins and Deploy<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/wpengine\/github-action-wpe-site-deploy\">WP Engine GitHub Action<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/wpackagist.org\">WPackagist<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Modern WordPress development has increasingly embraced Composer as a way to manage dependencies and improve workflow consistency. Whether you&#8217;re using a custom Composer setup or a framework like Bedrock, WP [&hellip;]<\/p>\n","protected":false},"author":36,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_EventAllDay":false,"_EventTimezone":"","_EventStartDate":"","_EventEndDate":"","_EventStartDateUTC":"","_EventEndDateUTC":"","_EventShowMap":false,"_EventShowMapLink":false,"_EventURL":"","_EventCost":"","_EventCostDescription":"","_EventCurrencySymbol":"","_EventCurrencyCode":"","_EventCurrencyPosition":"","_EventDateTimeSeparator":"","_EventTimeRangeSeparator":"","_EventOrganizerID":[],"_EventVenueID":[],"_OrganizerEmail":"","_OrganizerPhone":"","_OrganizerWebsite":"","_VenueAddress":"","_VenueCity":"","_VenueCountry":"","_VenueProvince":"","_VenueState":"","_VenueZip":"","_VenuePhone":"","_VenueURL":"","_VenueStateProvince":"","_VenueLat":"","_VenueLng":"","_VenueShowMap":false,"_VenueShowMapLink":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-32109","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine - Builders<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine - Builders\" \/>\n<meta property=\"og:description\" content=\"Modern WordPress development has increasingly embraced Composer as a way to manage dependencies and improve workflow consistency. Whether you&#8217;re using a custom Composer setup or a framework like Bedrock, WP [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/\" \/>\n<meta property=\"og:site_name\" content=\"Builders\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-12T13:24:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-12T15:15:37+00:00\" \/>\n<meta name=\"author\" content=\"Iain Poulson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wpebuilders\" \/>\n<meta name=\"twitter:site\" content=\"@wpebuilders\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Iain Poulson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/deploying-composer-based-wordpress-site-to-wp-engine\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/deploying-composer-based-wordpress-site-to-wp-engine\\\/\"},\"author\":{\"name\":\"Iain Poulson\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#\\\/schema\\\/person\\\/e3645204f59cb5c0228471874dbb6643\"},\"headline\":\"Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine\",\"datePublished\":\"2026-03-12T13:24:33+00:00\",\"dateModified\":\"2026-03-12T15:15:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/deploying-composer-based-wordpress-site-to-wp-engine\\\/\"},\"wordCount\":643,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#organization\"},\"articleSection\":[\"WordPress\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wpengine.com\\\/builders\\\/deploying-composer-based-wordpress-site-to-wp-engine\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/deploying-composer-based-wordpress-site-to-wp-engine\\\/\",\"url\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/deploying-composer-based-wordpress-site-to-wp-engine\\\/\",\"name\":\"Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine - Builders\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#website\"},\"datePublished\":\"2026-03-12T13:24:33+00:00\",\"dateModified\":\"2026-03-12T15:15:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/deploying-composer-based-wordpress-site-to-wp-engine\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wpengine.com\\\/builders\\\/deploying-composer-based-wordpress-site-to-wp-engine\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/deploying-composer-based-wordpress-site-to-wp-engine\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#website\",\"url\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/\",\"name\":\"Builders\",\"description\":\"Reimagining the way we build with WordPress.\",\"publisher\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#organization\",\"name\":\"WP Engine\",\"url\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/WP-Engine-Horizontal@2x.png\",\"contentUrl\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/WP-Engine-Horizontal@2x.png\",\"width\":348,\"height\":68,\"caption\":\"WP Engine\"},\"image\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/wpebuilders\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCh1WuL54XFb9ZI6m6goFv1g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#\\\/schema\\\/person\\\/e3645204f59cb5c0228471874dbb6643\",\"name\":\"Iain Poulson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c63a32443b6409645a2a8a440d3eb6f84b155cfe0344a04ff590ccb5166f4c2?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c63a32443b6409645a2a8a440d3eb6f84b155cfe0344a04ff590ccb5166f4c2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c63a32443b6409645a2a8a440d3eb6f84b155cfe0344a04ff590ccb5166f4c2?s=96&d=mm&r=g\",\"caption\":\"Iain Poulson\"},\"description\":\"Iain is a Product Manager at WP Engine with a long history of building and growing WordPress plugins. Moonlights as a PhpStorm evangelist.\",\"url\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/author\\\/iain-poulson-2-2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine - Builders","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/","og_locale":"en_US","og_type":"article","og_title":"Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine - Builders","og_description":"Modern WordPress development has increasingly embraced Composer as a way to manage dependencies and improve workflow consistency. Whether you&#8217;re using a custom Composer setup or a framework like Bedrock, WP [&hellip;]","og_url":"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/","og_site_name":"Builders","article_published_time":"2026-03-12T13:24:33+00:00","article_modified_time":"2026-03-12T15:15:37+00:00","author":"Iain Poulson","twitter_card":"summary_large_image","twitter_creator":"@wpebuilders","twitter_site":"@wpebuilders","twitter_misc":{"Written by":"Iain Poulson","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/#article","isPartOf":{"@id":"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/"},"author":{"name":"Iain Poulson","@id":"https:\/\/wpengine.com\/builders\/#\/schema\/person\/e3645204f59cb5c0228471874dbb6643"},"headline":"Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine","datePublished":"2026-03-12T13:24:33+00:00","dateModified":"2026-03-12T15:15:37+00:00","mainEntityOfPage":{"@id":"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/"},"wordCount":643,"commentCount":0,"publisher":{"@id":"https:\/\/wpengine.com\/builders\/#organization"},"articleSection":["WordPress"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/","url":"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/","name":"Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine - Builders","isPartOf":{"@id":"https:\/\/wpengine.com\/builders\/#website"},"datePublished":"2026-03-12T13:24:33+00:00","dateModified":"2026-03-12T15:15:37+00:00","breadcrumb":{"@id":"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wpengine.com\/builders\/deploying-composer-based-wordpress-site-to-wp-engine\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wpengine.com\/builders\/"},{"@type":"ListItem","position":2,"name":"Deploying a Composer-Based WordPress Site (Including Bedrock) to WP Engine"}]},{"@type":"WebSite","@id":"https:\/\/wpengine.com\/builders\/#website","url":"https:\/\/wpengine.com\/builders\/","name":"Builders","description":"Reimagining the way we build with WordPress.","publisher":{"@id":"https:\/\/wpengine.com\/builders\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wpengine.com\/builders\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wpengine.com\/builders\/#organization","name":"WP Engine","url":"https:\/\/wpengine.com\/builders\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wpengine.com\/builders\/#\/schema\/logo\/image\/","url":"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2024\/05\/WP-Engine-Horizontal@2x.png","contentUrl":"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2024\/05\/WP-Engine-Horizontal@2x.png","width":348,"height":68,"caption":"WP Engine"},"image":{"@id":"https:\/\/wpengine.com\/builders\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/wpebuilders","https:\/\/www.youtube.com\/channel\/UCh1WuL54XFb9ZI6m6goFv1g"]},{"@type":"Person","@id":"https:\/\/wpengine.com\/builders\/#\/schema\/person\/e3645204f59cb5c0228471874dbb6643","name":"Iain Poulson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/6c63a32443b6409645a2a8a440d3eb6f84b155cfe0344a04ff590ccb5166f4c2?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6c63a32443b6409645a2a8a440d3eb6f84b155cfe0344a04ff590ccb5166f4c2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6c63a32443b6409645a2a8a440d3eb6f84b155cfe0344a04ff590ccb5166f4c2?s=96&d=mm&r=g","caption":"Iain Poulson"},"description":"Iain is a Product Manager at WP Engine with a long history of building and growing WordPress plugins. Moonlights as a PhpStorm evangelist.","url":"https:\/\/wpengine.com\/builders\/author\/iain-poulson-2-2\/"}]}},"_links":{"self":[{"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/posts\/32109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/comments?post=32109"}],"version-history":[{"count":0,"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/posts\/32109\/revisions"}],"wp:attachment":[{"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/media?parent=32109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/categories?post=32109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/tags?post=32109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}