• Resolved John Webber

    (@bilion)


    Hello, WP-Optimize 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 WP-Optimize 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 2 replies - 1 through 2 (of 2 total)
  • Plugin Support vupdraft

    (@vupdraft)

    Unfortunately, what you want is the opposite to how most caching plugins work.

    You can stop the page from being cached but you can’t easily stop it being cached on the first visit within the plugin

    When you do things like update update pages an automatic partial preload is run. The only way for you not to have this would be to have caching disabled or to exclude the page from caching

    You can disable cache in chrome if this helps: https://www.webinstinct.com/faq/how-to-disable-browser-cache

    Thread Starter John Webber

    (@bilion)

    Thank you for your answer

    I found a solution, but did not test with your plugin

    Defining the DONOTCACHEPAGE constant for a specific page works for most caching plugins. Maybe it works for yours as well

    And if it doesn’t, you should update it to respect this standard

    Thanks,
    John

Viewing 2 replies - 1 through 2 (of 2 total)

The topic ‘Prevent Caching On First Open’ is closed to new replies.