• Resolved John Webber

    (@bilion)


    Hello, NitroPack 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 NitroPack 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 1 replies (of 1 total)
  • Plugin Support Marina @ NitroPack

    (@nitromarina)

    Hey Jovan,

    Thank you for reaching out to the NitroPack Support Team. We appreciate your interest in our plugin and the detailed explanation of your caching requirements.

    To address your specific questions:

    1. Compatibility with Your Approach:

    Your proposed approach of using WordPress hooks and filters to control caching based on the last modified time is compatible with NitroPack. We believe it should be a viable approach.

    2. NitroPack-Specific Solutions:

    Yes, NitroPack supports skipping caching on the first visit using either the?X-Nitro-Disabled?header or purging the cache for a specific page with the?nitropack_purge?function. You can use the following code snippets for each:

    Skip Caching Using Header:
    nitropack_header("X-Nitro-Disabled: 1");

    Purge Cache for Specific Page:
    nitropack_purge($url = 'your-specific-page-url', $tag = NULL, $reason = 'Skipping caching on the first visit');

    Should you have any further inquiries or if there’s anything else we can assist you with, please do not hesitate to reach out.

    Best regards,
    Marina
    NitroPack Support Team

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