Plugin Directory

Changeset 2007963


Ignore:
Timestamp:
01/07/2019 06:49:55 PM (7 years ago)
Author:
patmeenan
Message:

Send the cache headers more reliably

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cloudflare-page-cache/trunk/cloudflare-page-cache.php

    r2003477 r2007963  
    44Plugin URI:   https://github.com/cloudflare/worker-examples/tree/master/examples/edge-cache-html
    55Description:  Cache HTML pages on the Cloudflare CDN when used with the page cache Worker.
    6 Version:      1.0
     6Version:      1.1
    77Author:       Patrick Meenan
    8 Author URI:   https://www.webpagetest.org/
     8Author URI:   https://www.cloudflare.com/
    99License:      MIT
    1010License URI:  https://opensource.org/licenses/MIT
     
    1414defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
    1515
    16 $cloudflare_page_cache_needs_purge = FALSE;
    17 
    18 // Add the response header to cache the page
    19 function cloudflare_page_cache_add_headers() {
    20   global $cloudflare_page_cache_needs_purge;
    21   if ( !$cloudflare_page_cache_needs_purge && !is_user_logged_in() ) {
    22     header( 'x-HTML-Edge-Cache: cache,bypass-cookies=wp-|wordpress|comment_|woocommerce_' );
    23   }
    24 }
    25 add_action( 'send_headers', 'cloudflare_page_cache_add_headers' );
    26 
    27 // Add the response header to purge the cache. send_headers isn't always called
    28 // so set it immediately when something changes.
    29 function cloudflare_page_cache_purge() {
    30   global $cloudflare_page_cache_needs_purge;
    31   if (!$cloudflare_page_cache_needs_purge) {
    32     $cloudflare_page_cache_needs_purge = TRUE;
    33     header( 'x-HTML-Edge-Cache: purgeall' );
    34   }
    35 }
    36 
    3716// Callbacks that something changed
    3817function cloudflare_page_cache_init_action() {
     
    4019    if ( $done ) {
    4120        return;
     21    }
     22    $done = true;
     23   
     24    // Add the edge-cache headers
     25  if (!is_user_logged_in() ) {
     26    header( 'x-HTML-Edge-Cache: cache,bypass-cookies=wp-|wordpress|comment_|woocommerce_' );
    4227  }
     28
    4329    // Post ID is received
    4430    add_action( 'wp_trash_post', 'cloudflare_page_cache_purge1', 0 );
     
    5945    add_action( 'clean_post_cache', 'cloudflare_page_cache_purge1' );
    6046    add_action( 'transition_post_status', 'cloudflare_page_cache_post_transition', 10, 3 );
    61     $done = true;
    6247}
    6348add_action( 'init', 'cloudflare_page_cache_init_action' );
     49
     50// Add the response header to purge the cache. send_headers isn't always called
     51// so set it immediately when something changes.
     52function cloudflare_page_cache_purge() {
     53  static $purged = false;
     54  if (!$purged) {
     55    $purged = true;
     56    header( 'x-HTML-Edge-Cache: purgeall' );
     57  }
     58}
    6459
    6560function cloudflare_page_cache_purge0() {
     
    7368}
    7469function cloudflare_page_cache_post_transition( $new_status, $old_status, $post ) {
    75   global $cloudflare_page_cache_needs_purge;
    7670  if ( $new_status != $old_status ) {
    7771    cloudflare_page_cache_purge();
Note: See TracChangeset for help on using the changeset viewer.