Modernize WordPress for a multi-developer, multi-environment workflow

WordPress has a ridiculously low point of entry, and that may be fine for a single developer or site owner who does everything from the Dashboard and Theme Customizer. But what if you have multiple developers and multiple environments? How do you develop and deploy new features, maintain software dependencies, and keep your sanity? There really is a better way: Bedrock from Roots.io, a professional WordPress project boilerplate.

UT Chattanooga had a WordPress Multisite that was managed "the old way" since 2007. We had a test environment and a production environment, running on a solid infrastructure, but making updates to our custom theme and plugins was done via FTP and sheer luck. Project history included broken deployments, seat-of-the-pants recoveries, and well-meaning super-admins crashing the production site by installing incompatible plugins.

In 2021, with several new coders onboard and increased pressure to develop and deliver custom plugins and themes, we knew we needed to modernize our WordPress project, and automate deployment to the on-prem infrastructure.

For local development, Lando was an obvious choice, since we were already using it for Drupal development. But what about defining the project with Composer, and using Git for multi-dev source control? Enter Bedrock, from Roots.io, a professional WordPress project boilerplate. Bedrock makes WordPress multi-environment capable, while PHP Composer manages all WordPress software, even custom private themes and plugins. Bedrock restructures WordPress core for multiple environments with individual configurations, and makes it easy to keep the project under version control with Git.

Laravel Envoy makes multi-environment deployments predictable, with zero downtime and scripted server commands. No more long nights of maintenance, no more running WordPress automated updates direct from the Dashboard. No more trying to remember all of the post-deployment tasks, such as updating the database and flushing caches. And what if something fails and we need to roll back to the previous deployment? Well, we have that covered! Envoy lets you run any command line SSH or WP-CLI task in a storybook script.

Chris Gilligan
Senior Web Developer at University of Tennessee at Chattanooga

Chattanooga, TN

Chris Gilligan is a generalist PHP developer working in open-source content management systems for corporate, non-profit, and educational clients.

https://www.drupalcampchattanooga.com/session/modernize-wordpress-multi-developer-multi-environment-workflow

Drupal is a registered trademark of Dries Buytaert.