A WordPress plugin to deploy a static site to Vercel when you publish a new WordPress post/page, update a WordPress post/page or deploy on command from the WordPress admin menu and admin bar.
Based on the excellent WordPress Plugin WP Netlify Webhook Deploy.
- 🚗 Deploy your Vercel project when publishing / updating a WordPress post
- 👉 Manually deploy your Vercel Project with the push of a button
- ⏲ Schedule deploys on a daily or weekly basis (mileage may vary).
You can install WP Vercel Deploy Hooks manually or through Composer
- Download the plugin as a
.zip
file from the repository - Login to your WordPress site and go to
Plugins -> Add new -> Upload plugin
- Locate the
.zip
file on your machine, upload and activate
Composer allows you to install pacakges from a GitHub repository. This repository includes a composer.json
file which declares the package as a WordPress plugin. Include it in your project's composer.json
as following:
...
"repositories": [
{
"type": "vcs",
"url": "https://github.com/aderaaij/wp-vercel-deploy-hooks.git"
}
],
"require": {
"aderaaij/wp-vercel-deploy-hooks": "main"
}
...
Now the package will be included in the plugins folder when you use composer install/update
.
To enable the plugin, you will need to create a Deploy Hook for your Vercel Project.
After you've created your deploy hook, navigate to Deploy -> Settings
in the WordPress admin menu and paste your Vercel Deploy hook URL. On the settings page you can also activate deploys when you publish or update a post (disabled by default).
You can configure the Vercel Deploy Hook URL in your wp-config.php or other configuration file to be based on your environment using the constant WP_VERCEL_WEBHOOK_ADDRESS
. An example follows:
switch (WP_ENVIRONMENT_TYPE) {
case "live":
case "production":
define( 'WP_VERCEL_WEBHOOK_ADDRESS', 'https://api.vercel.com/v1/integrations/deploy/<sample>/<sample>' );
break;
case "test":
case "staging":
define( 'WP_VERCEL_WEBHOOK_ADDRESS', 'https://api.vercel.com/v1/integrations/deploy/<sample>/<sample>' );
break;
case "dev":
case "development":
define( 'WP_VERCEL_WEBHOOK_ADDRESS', 'https://api.vercel.com/v1/integrations/deploy/<sample>/<sample>' );
break;
case "local":
define( 'WP_VERCEL_WEBHOOK_ADDRESS', 'https://api.vercel.com/v1/integrations/deploy/<sample>/<sample>' );
break;
}
See https://make.wordpress.org/core/2020/07/24/new-wp_get_environment_type-function-in-wordpress-5-5/ for more guidance on using WP_ENVIRONMENT_TYPE
When you enable scheduling it calls the cron_schedules
hook which depends on your site having visitors to be triggered. To make sure your schedule is triggered timely, you could schedule a CRON job in your hosting panel which calls wp-cron.php
. Please check out the Webhook Netlify Deploy scheduling documentation for more information.
This plugin was based on the excellent WordPress Plugin WP Netlify Webhook Deploy
Made with contrib.rocks.
- Add support for deploy and build statusses and updates through the Vercel API
- Add support for Netlify Builds and Deploys
- Add support for multiple Vercel deploy endpoints