Support » Plugin: Super Page Cache for Cloudflare » Clear Cache after every new post

  • Hi!

    Like in the title – I want to clear cache after every new post BUT for front-page and pages. It should work even with a schedule ones. Right now I believe that only categories are cleared but pages that includes same posts as the category not.

    I would be grateful for help.

Viewing 7 replies - 1 through 7 (of 7 total)
  • Plugin Contributor Saumya Majumder

    (@isaumya)

    Hi,
    you can take advantage of swcfpc_post_related_url_init filter to add any URLs you want that you would like the plugin to consider as related URLs. The details about this filter is present inside the plugin settings > FAQ Tab: https://i.imgur.com/peDczLv.jpeg

    Also in many support thread I’ve even shared an example code:
    https://wordpress.org/support/topic/main-page-doesnt-update-when-publish-a-page-or-post/page/2/#post-14733840

    I can’t find the older threads at this point, but you can check the previous support threads where I have talking about this many times.

    Thread Starter georgepennet

    (@georgepennet)

    Ok thank you I’ll try.

    Also..I set your plugin to also use fallback page cache. I wonder if it’s possible to set some kind of delay when it comes to purge. 
I’ll try to explain you what I mean. 

In short when something is published (even with schedule feature) I want cloudflare cache for front page, categories and pages to be cleared but not fallback page cache until new cloudflare cached version is ready. Is it possible to set it up like this somehow? Something 

5 minutes delay wouldn’t be a big deal for me.

    Plugin Contributor Saumya Majumder

    (@isaumya)

    Hi,
    what you are requesting is not possible as that’s now how the architecture works. You see the name Fallback Cache means it’s just a fallback. So, if you have that option enabled and someone requests https://example.com/some-post/ and that page isn’t cached in CF yet then the request will come to the origin server. At that time origin server will use PHP to generate the page HTML and save the page HTML in the fallback cache.

    Then on the next request for the same page, Cloudflare would have already cached the page by now, so the request won’t even come to your origin server instead be served by Cloudflare CDN. Now in the future when the CF CDN cache gets expired and the request again needs to come to the origin server. At this point instead of again running PHP to generate the page HTML, instead, the page HTML will be provided from the Fallback Cache which is way faster than the server generating the page HTML by executing PHP.

    I hope you understand the flow now.

    Thread Starter georgepennet

    (@georgepennet)

    Hm I think I understand how this fallback works now but I still not sure why I wouldn’t be able to generate static HTML version of the website. This HTML version is cached by CF. When new post is published static HTML cached is rebuild so CF can rebuild the cache as well.. This way visitors won’t have to wait (at least most of the times and with latest content) for php execution.

    Not sure do you understand what I’m trying to say :P. I thought that maybe with some 3rd party cache plugin this could be done. Anyway if it’s not possible then chill. I simply wanted to understand why because it sounds cool in my head :P.

    Hi,
    you can take advantage of swcfpc_post_related_url_init filter to add any URLs you want that you would like the plugin to consider as related URLs. The details about this filter is present inside the plugin settings > FAQ Tab: https://i.imgur.com/peDczLv.jpeg

    Ok ok so..let’s say new post will be published (even by schedule) and I want to clear cache on that pages to keep both homepage and those pages updated…will this code work:

    <?php
    add_filter( 'swcfpc_post_related_url_init', function( $listofurls, $postId ) {
    
    	$listofurls = [ 
    		get_home_url( null, '/page1/' ), 
    		get_home_url( null, '/page2/' ),
    		get_home_url( null, '/page3' )
    	];
    
    	return $listofurls;
    } );
    Plugin Contributor Saumya Majumder

    (@isaumya)

    Hm I think I understand how this fallback works now but I still not sure why I wouldn’t be able to generate static HTML version of the website.

    – I don’t get your question. The static HTML version of the website is cached at CF CDN level and if the needed fallback cache is generated. This ensure that if not needed fallback cache is not generated (i.e. the request didn’t come to origin and were served by CF). This also helps reducing the server load and resource usage.

    Not sure do you understand what I’m trying to say 😛

    – I think I am not fully understanding what you are trying to do here.

    Also your code needs a little modification:

    <?php
    add_filter( 'swcfpc_post_related_url_init', function( $listofurls ) {
    
      $listofurls = [
        site_url( '/' ),
        site_url( '/page1/' ),
        site_url( '/page2/' ),
        site_url( '/page3/' )
      ];
    
      return $listofurls;
    }, 10, 1 );

    If you are not going to use $postID then why use it in the function? The above code adds the home page and those sub-pages as part of the related page queue.

    Alternatively if you would like to perform some logic based on $postID then you can add that to the function and at the end of the function replace 10, 1 with 10, 2. That’s it.

    Thread Starter georgepennet

    (@georgepennet)

    I think I am not fully understanding what you are trying to do here.

    In short I wanted to always provide a cached version of the website.

    If you are not going to use $postID then why use it in the function? The above code adds the home page and those sub-pages as part of the related page queue.
    
    Alternatively if you would like to perform some logic based on $postID then you can add that to the function and at the end of the function replace 10, 1 with 10, 2. That’s it.

    Ideal would be to clear page1 when post in category id 1053 is published. When category id 1054 is published then clear page2 etc etc. But not sure how to achieve that.

    • This reply was modified 1 week, 4 days ago by georgepennet.
    Plugin Contributor Saumya Majumder

    (@isaumya)

    In short I wanted to always provide a cached version of the website.

    – That’s what this plugin does. Provide the cached version of your website from Cloudflare CDN and if the cache is not present there it comes to the origin server check for fallback cache if it is enabled and then provide the fallback cache version of the webpage and then Cloudflare Cache it.

    Ideal would be to clear page1 when post in category id 1053 is published. When category id 1054 is published then clear page2 etc etc. But not sure how to achieve that.

    – You can take advantage of the get_the_category() Link: https://developer.wordpress.org/reference/functions/get_the_category/ by passing the postID and then send whatever array of URLs you want to send.

Viewing 7 replies - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.