Exclude Pages From LiteSpeed Cache by Rule
Marks chosen pages as not cacheable in LiteSpeed Cache from code, for example pages with a personalised widget, a query parameter or for visitors with a specific cookie.
Opens WPIDE on
Code
$wpide_pages = array( 'quote', 'booking' ); // Page slugs or IDs.
$wpide_params = array( 'preview_token' ); // Query parameters.
$wpide_cookies = array( 'wpide_personalised' ); // Cookie names.
add_action( 'template_redirect', function () use ( $wpide_pages, $wpide_params, $wpide_cookies ) {
if ( ! defined( 'LSCWP_V' ) ) {
return;
}
$reason = '';
if ( $wpide_pages && is_page( $wpide_pages ) ) {
$reason = 'wpide page rule';
}
foreach ( $wpide_params as $param ) {
if ( isset( $_GET[ $param ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
$reason = 'wpide query rule';
}
}
foreach ( $wpide_cookies as $cookie ) {
if ( isset( $_COOKIE[ $cookie ] ) ) {
$reason = 'wpide cookie rule';
}
}
if ( $reason ) {
do_action( 'litespeed_control_set_nocache', $reason );
}
} );
Notes
Edit the three lists; any match marks the page as non-cacheable for that request.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.