Transient Cleaner
Clean expired transients from your options table. The original and best! Transient housekeeping was added to the core of WordPress after version 5.8. However, I have decided to open up this plugin to all versions to allow for manual transient cleaning. Longer term I am working on a new version of the plugin, designed specifically for all WordPress releases. Tested up to PHP 8.2 Fully complies with WordPress coding standards Compliant with the stronger WordPress VIP coding standards, as well as compatibility with their platform Community plugin – visit the Github page to get involved with the latest code development, request enhancements and report issues “Transients are a simple and standardized way of storing cached data in the WordPress database temporarily by giving it a custom name and a timeframe after which it will expire and be deleted.” Unfortunately, expired transients only get deleted when you attempt to access them. If you don’t access the transient then, even though it’s expired, WordPress will not remove it. This is a known “issue” but due to reasons, which are explained in the FAQ, this has not been adequately resolved. Why is this a problem? Transients are often used by plugins to “cache” data (my own plugins included). Because of this it means that expired data can be left and build up, resulting in a bloated database table. Meantime, this plugin is the hero that you’ve been waiting for. Simply activate the plugin, sit back and enjoy a much cleaner, smaller options table. It also adds the additional recommendation that after a database upgrade all transients will be cleared down. The Settings Screen Within Administration -> Tools -> Transients an options screen exists allowing you to tweak when you’d like cleaning to happen, including the ability to perform an ad-hoc run, and when you’d like the to be automatically scheduled. You can even request an optimization of the options table to give your system a real “pep”! Running in Lite mode A “lite” mode is available. By activating this the options screen will no longer appear and default settings will be used. The advantage? Improved performance to Admin and, especially if you’re running multi-site, no chance of anybody “tinkering” with the settings. To activate, use the following… define( 'TC_LITE', true ); This should be added to your wp-config.php file. Using hooks If you’re the type of odd person who likes to code for WordPress (really?) then I’ve added a couple of hooks so you can call our rather neat cleaning functions… housekeep_transients – this will clear down any expired transients clear_all_transients – this will remove any and all transients, expired or otherwise Acknowledgements I’d like to thank WordPress Developer Andrew Nacin for his early discussion on this. Also, I’d like to acknowledge the useful article at Everybody Staze for ensuring the proposed solution made sense, and W-Shadow.com for the cleaning code. Iconography is courtesy of the very talented Janki Rathod.
Top keywords
- transients10×2.00%
- wordpress8×1.60%
- expired6×1.20%
- options5×1.00%
- cleaning4×0.80%
- table4×0.80%
- added3×0.60%
- code3×0.60%
- data3×0.60%
- database3×0.60%
- expired transients3×0.60%
- options table3×0.60%
Clear Cache for Me
W3 Total Cache and WP Super Cache are great caching plugins, but they do not know when a widget is updated. WPEngine is the best place to host your WordPress installation, but their caching system is no smarter when it comes to updating widgets and menus. I created this plugin because my website did not see any changes when saving widgets or menus using these caching systems. Clear Cache For Me will purge ALL your cache each time you do a save without having to press an additional button. It may be overkill, which may be why it’s not built in, but some people need simplicity. In addition to clearing those pesky caching engines, Clear Cache for Me can force your browser to reload your current theme’s CSS and JS files. I modify my theme’s CSS and JS files every so often and always have trouble with the browser not getting the latest version. So now after clicking on the “Clear Cache Now!” button on the dashboard the browser will be forced to reload the current theme’s CSS and JS files. If you do not click the “Clear Cache Now!” button, the browser will cache the CSS and JS files like it normally does. The popular Qode themes has a options to set your own custom CSS and JS. Sometimes you may not see your changes for a long while because your browser is trying to get the cached file. Whenever you save your Qode’s options, the CSS and JS files will be forced to reload in the browser on the public side. Works with the following caching plugins: Autoptimize Breeze Cache Cache Enabler Cloudflare GoDaddy Cache Kinsta Cache LiteSpeed Cache Elementor (CSS cache) Premium Addons for Elementor SiteGround SuperCacher Super Page Cache WP Fastest Cache WP Optimize Cache WP Rocket WP Super Cache W3 Total Cache WPEngine Cache Clears all cache for following actions (requires a caching system above to be active): When Widgets are saved. When Customizer is saved. When Menus are saved. When a fields in Advanced Custom Fields are saved. When a Contact Form 7 form is saved. When a Formidable Form form is saved. When WooThemes settings are saved. When NextGen Gallery albums and galleries are updated (beta – may not clear cache on all actions). When Qode options are saved this plugin forces browsers to reload the custom css and custom js. When a WP Forms forms or settings are saved. When WooCommerce settings are saved. (Cache should already be clearing when products are saved.) When settings from the Insert Headers and Footers plugin by WPBeginner are saved. When Settings from a settings page is saved. This includes settings from WordPress core, Yoast SEO, and most other plugins using the Settings API. When WordPress is updated. When plugins are updated, activated, and deactivated. When WordPress, plugins, and themes are automaticallly updated. See the plugin’s homepage for more details. Note: Since some caching systems run in the shutdown hook, this plugin also runs in that hook. This means if PHP does not have enough time, some code including any hooks within the ccfm_clear_cache_for_all() function are not guaranteed to run. If you need code to run, consider using the ccfm_clear_cache_for_me_setup hook. Some plugins may have “auto purge” (like Cloudflare), but it doesn’t cover all the items this plugin covers. Developer Options ccfm_supported_caching_exists Use this filter to determine if this plugin should do anything including showing the button on the dashboard. Return true if a caching system is supported. Default: True if any of the supported caching systems is active. See Example 1 below. ccfm_admin_init or ccfm_init_actions Use this action to add hooks when cache is to be cleared. Or do any other setup activity. ccfm_clear_cache_for_me_before Use this action to clear cache from an unsupported caching system before the default caching systems clear their cache. ccfm_clear_cache_for_me Use this action to clear cache from an unsupported caching system after the default caching systems clear their cache. Example If you were using an unsupported caching system you’ll need to identify the caching plugin’s class or function which clears the cache. As an example, if the unsupported caching system called the MyOtherCache::clear_all() function, you would use the following code to get this plugin to clear the cache. <?php function my_other_cache_enable( $return = false ) { if ( class_exists( 'MyOtherCache' ) ) return true; return $return; } add_filter('ccfm_supported_caching_exists', 'my_other_cache_enable'); function my_other_cache_clear() { if ( my_other_cache_enable() ) MyOtherCache::clear_all(); } add_action('ccfm_clear_cache_for_me', 'my_other_cache_clear');