How do I turn off the WP Super Cache & W3 Total Cache functionality programmatically? For instance, I neither want to make it use the cache on some requests nor cache the output of the request, do they support that using filters? I couldn't find anything useful in their documentation.

closed as off-topic by mrwweb, Pieter Goosen, Nicolai, Johannes Pille, birgire Aug 28 '14 at 13:16

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Your question should be specific to WordPress. Generic PHP/JS/HTML/CSS questions might be better asked at Stack Overflow or another appropriate site of the Stack Exchange network. Third party plugins and themes are off topic." – mrwweb, Pieter Goosen, Nicolai, Johannes Pille, birgire
If this question can be reworded to fit the rules in the help center, please edit the question.

  • Why would you want to disable the cache? There's no reason to ever do that. – Otto Oct 4 '12 at 14:26
  • I am working on a mobile theme plugin, so need to make sure that it gets served directly, without affecting the main site. This seems like the way out unless both plugins support caching mobile pages in someway? – Ashfame Oct 4 '12 at 14:30
  • 1
    I know this is old, but this link talks about how to programmatically flush the cache, in case it's helpful to anyone: wordpress.stackexchange.com/questions/7112/… – David Hobs Mar 9 '13 at 23:57

Easiest way to do this was to define a constant programmatically:

// Tell WP Super Cache & W3 Total Cache to not cache WPReadable requests
define( 'DONOTCACHEPAGE', true );
  • This only disables caching the page but still allows to serve already cached content. – Alexey Kosov Feb 26 '18 at 8:53
  • @AlexeyKosov Don't remember that being the case but it has been years. – Ashfame Feb 26 '18 at 9:50

Both plugins you mention have settings pages that allow you to add directories or specific files to not cache.

These setting files are saved as text files in the relevant directory. You should be able to programatically 'append' your /mobile-theme/ directory to these settings files.


As per this question, you can use fragment caching to exclude specific things from being cached:

Edit your templates to with the following syntax to ensure that dynamic features remain so: Example 1:

<!-- mfunc any PHP code --><!-- /mfunc -->

Example 2:

<!-- mfunc -->any PHP code<!-- /mfunc -->

Example 3:

<!--MFUNC           -->
                                      echo rand();
<!--/mfunc -->

Example 4:

<!-- mclude path/to/file.php --><!-- /mclude -->

Example 5:

<!-- mclude -->path/to/file.php<!-- /mclude -->

Not the answer you're looking for? Browse other questions tagged or ask your own question.