DEPRECATED LSCWP Third Party Plugin Integration Framework

The following elements have been deprecated. Please see this page for the most current information.

  1. A class to handle the compatibility code. A template is available below.
  2. Initiator for the class. Can be in the plugin's own file space or appended to the registry.


If a plugin does something that may update pages, such as a “like” button that updates a counter using ajax for example, add the following to purge the updated pages from cache.

     do_action('lscwp_purge_single_post', $post_id);

Note: This action may be called multiple times for multiple post ids if needed, but it must be called prior to any response body output. This includes any 'echo' outputs.

The $tag parameter

This parameter is used to distinguish pages. Generally speaking, there are two components to the tag, the name and the ID. That said, any number of components are allowed. Each component should be separated via a period, '.'.

The name should be short, but unique. As an example, if the plugin MySlideShowPlugin has a class SlideShow, it might use MSSP_SS.1.


Adds a single or group of cache tags to the list of cache tags associated with the current page. These will be appended to the LiteSpeed Cache Plugin generated list of cache tags. This may be useful to purge by a custom tag rather than resorting to the WordPress site wide tags.


$tag String/Array A (list of) cache tag(s) to associate with the page.


Adds a single or group of purge tags to the list of tags to be purged with the request. This may be useful for situations where another plugin needs to purge custom cache tags or associated pages.


$tag String/Array A (list of) purge tag(s) to append to the list.

Adds a single or group of vary cookies to the list of cookies to vary the page on. This may be useful for situations where a page is displayed differently depending on a cookie. For example, a different page based on language.


$cookie String/Array A (list of) vary cookie(s) to append to the list.


Notify the plugin to use the front page TTL for this page.


Notify the plugin that this page was built for a mobile display.


Notify the plugin that this page is not cacheable. This is meant to be used outside of the litespeed_cache_is_cacheable filter.







These hook points are provided for hooking into the cache's run time functionality. It is not required to hook into any of these hook points; these are provided more for convenience. It is possible that a plugin only needs to hook into its own hook points.

Action - litespeed_cache_detect_thirdparty

This action may be used to check if it is necessary to add any further functionality to the current request. For example, if a user visits a shopping page, there is no need for the forum plugin to do its extra checks/add its tags because the page is unrelated.

If, however, the callback determines that it is a forum page, it is recommended to add any needed actions/filters in the callback.

Action - litespeed_cache_on_purge_post

Triggered when a post is about to be purged. Use this hook point if purging a page should purge other pages related to your plugin.

An example use case: Suppose a user replies to a forum topic. This will cause the forum topic to be purged. When the plugin is about to notify the server, the forum plugin will see that the cache is about to purge the topic page. The plugin then adds purge tags, notifying the server to purge the forum and forum list as well. This ensures that all related pages are up to date.

Action - litespeed_cache_add_purge_tags

Called at the end of every request. This hook provides an access point to any plugin that needs to add purge tags to the current request.

Action - litespeed_cache_add_cache_tags

Called at the end of every cacheable request. This hook provides an access point to any plugin that needs to add cache tags to the current request.

Filter - litespeed_cache_is_cacheable($cacheable)

Triggered when the cache plugin is checking if the current page is cacheable. This filter will not trigger on admin pages nor regular pages when visited by a logged in user.


$cacheable boolean Represents whether a previous filter determined the cache to be cacheable or not. If this is false, it is strongly recommended to return false immediately to optimize performance.


  • boolean True if cacheable, false otherwise. If $cacheable was false and true is returned, the result is undefined behavior.

Filter - litespeed_cache_get_options($options)

Triggered when getting a list of third party options. This will gather all option keys that third party plugins may require.


$options array The list of option keys.


  • array The updated list of option keys.

Filter - litespeed_cache_add_config_tab($tp_tabs, $options, $option_name)

This hook allows third party plugins to create litespeed cache specific configurations.

Each config should append an array containing the following:

  • 'title' (required) - The tab's title.
  • 'slug' (required) - The slug used for the tab. [a-z][A-Z], [0-9], -, _ permitted.
  • 'content' (required) - The tab's content.

Upon saving, only the options with the option group in the input's name will be retrieved. For example, name=“litespeed-cache-conf[my-opt]”.


$tp_tabs array An array of third party configurations as described above.

$options array The current configuration options.

$option_group string The option group to use for options.

$disableall boolean Whether to disable the settings or not.


  • mixed An array of third party configs else false on failure.

Filter - litespeed_cache_save_options($options, $input)

Triggered when the admin saves the LiteSpeed cache options. It will pass in the current options and input options.


$options array The current configuration options.

$input array The input configuration options.


  • array The updated configuration options.
  • Admin
  • Last modified: 2017/08/22 19:08
  • by Lisa Clarke