This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Purgely

Description

Purgely manages caching behavior for WordPress sites using Fastly as an edge caching solution. The plugin exposes useful
APIs to help control how pages on your site are cached, as well as provides sane defaults to make this a plug and play
solution for Fastly cache management.

The plugin handles the following:

  • Sets the Surrogate-Control header to control the expiration time for pages
  • Sets the stale-while-revalidate and stale-if-error Cache-Control directives for managing these special Fastly
    behaviors
  • Set groups of Surrogate-Keys for all pages to provide purging across multiple pages with one command
  • Provides invalidation of posts and related posts on save

Each of these items have sane defaults with ways to override them and configure them to your liking.

Additionally, the plugin exposes a WP CLI command to provide more flexible purging options.

Installation

Manual installation

  1. Upload the plugin directory to /wp-content/plugins/
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

WP CLI installation

  1. Run wp plugin install --activate purgely

Configuration

Purgely provides a number of constants that can be used to control the behavior of the plugin and Fastly’s cache. Users
who wish to change these values should define the constants in wp-config.php.

After installing, you should define PURGELY_FASTLY_KEY and PURGELY_FASTLY_SERVICE_ID in wp-config.php. The plugin will work without them; however, you will not be able to purge by surrogate key or purge all without configuring these options. To define them copy the following code to your wp-config.php file, update the key to use your key, and the service ID to match the fastly service you’re using:

`

define( ‘PURGELY_FASTLY_KEY’, ’39c4820390d8f050giweda50268c7583′ );
define( ‘PURGELY_FASTLY_SERVICE_ID’, ‘abcdefghijklmn1234567890’ );
`

Configuring other constants is similarly done by defining the constant in wp-config.php. All constants are explained
below.

PURGELY_API_ENDPOINT

Defines the API endpoint for Fastly. This should not usually need to be changed, but is added in the event that Fastly
decides to use a different API endpoint, or if there is a need for a user to have a special endpoint.

default: (string) ”

PURGELY_ALLOW_PURGE_ALL

Determines whether or not the plugin can issue a purge all request. Purge all can have dire consequences for a website.
As such, this behavior is disabled by default. If can be turned on by setting this value to true.

default: (bool) false

PURGELY_ENABLE_STALE_WHILE_REVALIDATE

Determines whether or not the plugin sets the stale-while-revalidate directive for the Cache-Control header. Setting
this value to false will turn off the stale-while-revalidate behavior. Note that you can manually control this
behavior via the functions exposed in the plugin regardless of this configuration option. This option only controls the
default plugin behavior.

default: (bool) true

PURGELY_STALE_WHILE_REVALIDATE_TTL

Sets the TTL for the stale-while-revalidate directive in seconds. The value instructs Fastly to continue serving stale
content while new content is generated for the duration of the value that is set.

default: (int) 86400

PURGELY_ENABLE_STALE_IF_ERROR

Determines whether or not the plugin sets the stale-if-error directive for the Cache-Control header. Setting
this value to false will turn off the stale-if-error behavior. Note that you can manually control this
behavior via the functions exposed in the plugin regardless of this configuration option. This option only controls the
default plugin behavior.

default: (bool) true

PURGELY_STALE_IF_ERROR_TTL

Sets the TTL for the stale-if-error directive in seconds. The value instructs Fastly to continue serving stale
content while the origin site is serving an error for the duration of the value that is set.

default: (int) 86400

PURGELY_SURROGATE_CONTROL_TTL

Sets the TTL for the Surrogate-Control header in seconds. This value is the default TTL for all pages on your site,
unless it is cached within the app. Changing this value changes the value for the whole site.

default: (int) 300

Reviews

Read all 1 review

Contributors & Developers

“Purgely” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Purgely” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.1

  • Update key saniziation to allow all capital letters, not just A-B.

1.0.0

  • Initial release.