• Resolved John Webber

    (@bilion)


    Hello LiteSpeed Cache Support Team,

    I’m developing a performance improving plugin and have a specific caching requirement.

    I need pages and posts not to be cached on first open, after they are created or edited.

    I need to examine the page with all the JS and CSS implemented, then edit the HTML before it can be cached. So, the page should be cached on the second visit.

    Is there a built-in feature or specific hook in LiteSpeed Cache that supports this functionality, and can be controlled through PHP?

    I am considering a custom implementation using WordPress hooks. Here’s a brief overview of my approach:

    // Function to update a custom field when a post or page is saved
    
    function update_last_modified_meta($post_id) {
    
    ??? update_post_meta($post_id, '_last_modified_time', current_time('mysql'));
    
    }
    
    add_action('save_post', 'update_last_modified_meta');
    
    // Function to control caching based on the last modified time
    
    function custom_per_page_cache_control() {
    
    ??? if (is_single() || is_page()) {
    
    ??????? global $post;
    
    ??????? $stored_last_modified = get_post_meta($post->ID, '_last_modified_time', true);
    
    ??????? if ($post->post_modified !== $stored_last_modified) {
    
    ??????????? // Send headers to prevent caching
    
    ??????????? header("Cache-Control: no-cache, must-revalidate, max-age=0");
    
    ??????????? header("Pragma: no-cache");
    
    ??????????? header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
    
    ??????????? update_post_meta($post->ID, '_last_modified_time', $post->post_modified);
    
    ??????? }
    
    ??? }
    
    }
    
    add_action('template_redirect', 'custom_per_page_cache_control');

    Is this approach is compatible with your plugin? Is there a solution specific to your plugin?

    Any recommendations or best practices for implementing this would be greatly appreciated.

    Thank you,

    Jovan

Viewing 3 replies - 1 through 3 (of 3 total)
  • supervisior

    (@supervisior)

    If you use guest mode, your requirement can be solved very easily. But there are several solutions, although it would be easiest with guest mode without having to touch PHP code.

    Plugin Support qtwrk

    (@qtwrk)

    hmmm? I don’t understand

    when a post is edited or published , the first access should always be cache miss , unless you have crawler accesses it before yourself ?

    or you mean you want to keep it no-cache until you set it so ?

    Thread Starter John Webber

    (@bilion)

    Actually I found a solution, and since I’m on a LS server, I tried it with your plugin

    Defining the DONOTCACHEPAGE constant for a specific page does the thick.
    Then I re-declare it as false, for the next load

    Thank you for the answers

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Prevent Caching On First Open’ is closed to new replies.