ZenCache v150409 was released on April 9th, 2015. This release includes 4 enhancements, 8 bug fixes, and a change to the minimum required PHP version.

Notable Enhancements

The most notable enhancements in this release are related to Static CDN Filters, HTML Compression, and the improved CloudFlare support.

ZenCache now includes support for CloudFlare IP forwarding, multiple IPs in a single header, and the ability to customize the lookup order and/or add/remove sources that are searched when looking for the current IP address (see How do I customize remote IP detection?). If you're using CloudFlare and/or the CloudFlare WordPress Plugin on your site, this release will improve ZenCache's compatibility with your environment.

Static CDN Filters now also apply to minified and compressed CSS/JS files generated by the HTML Compressor. This means that if you're using Static CDN Filters to cache static resources on the CDN of your choosing, the minified and compressed CSS/JS files generated by the HTML Compressor will load even faster, as they will now be cached and served by your CDN.

Static CDN Filters now also filter any static resources inside Text Widgets, so if you have a Text Widget that includes an image or a link to another static resource, that static resource will now also be cached by the CDN. (If you'd like to learn more about how Static CDN Filters work, see How do Static CDN Filters work?)

Notable Bug Fixes

There were several bug fixes in this release (see the complete changelog below), including one related to users migrating from Quick Cache to ZenCache. We also bumped the minimum required version of PHP to v5.3.2.

During a Quick Cache to ZenCache migration, uninstalling Quick Cache was removing define('WP_CACHE', TRUE); from the wp-config.php file and ZenCache was only checking to make sure the wp-config.php file was updated upon activation, so unless you deactivated and reactivated ZenCache after uninstalling Quick Cache, your site would not be cached despite ZenCache being enabled. ZenCache now makes sure that caching remains enabled after uninstalling Quick Cache during the ZenCache migration process. (Remember, you can always check if ZenCache is active and operating correctly by viewing your page source and looking for the HTML Notes; see How do I know if ZenCache is working?)

We bumped the minimum required PHP version from PHP v5.3 to PHP v5.3.2 in this release: The ZenCache cache locking mechanism, specifically the use of flock(), requires flock() behavior that was introduced in PHP v5.3.2. If you were having issues with cache locking prior to this release and you were running PHP v5.3 or PHP 5.3.1, that was likely the source of the problem. Please ensure that your server is running PHP 5.3.2+ (if you're unsure, contact your web hosting company); as of v150409 ZenCache will no longer activate unless your server is running at least PHP 5.3.2.

Complete Changelog for ZenCache v150409

  • Enhancement (includes improved CloudFlare support): Improvements to IP address detection, including added support for CloudFlare IP forwarding, multiple IPs in a single header, and the ability to customize the lookup order and/or add/remove sources that are searched when looking for the current IP address. It's also possible to revert to the old IP address detection behavior (see How do I customize remote IP detection?). Props @jaswsinc. Issue #449
  • Enhancement (Pro): Files being served by the HTML Compressor were being sent without a Vary: Accept-Encoding header, which caused some page speed testing services to give a lower rating to sites using ZenCache. ZenCache now ensures this header is sent via an .htaccess file inside the HTML Compressor cache directory (requires Apache 2.1+). Props @jaswsinc. Issue #436.
  • Enhancement (Pro): Static CDN Filters now also filter any static resources inside Text Widgets, so that those resources can be cached by your CDN. Props @jaswsinc. Issue #430
  • Enhancement (Pro): Static CDN Filters now apply to minified and compressed CSS/JS files generated by the HTML Compressor; these files will now be cached by your CDN. Props @jaswsinc. Issue #429
  • Bug Fix: Fixed a bug related to the Quick Cache migration that resulted in caching being disabled despite ZenCache being enabled. Uninstalling Quick Cache was removing define('WP_CACHE', TRUE); from the wp-config.php file. ZenCache now makes sure that caching remains enabled after uninstalling Quick Cache during the ZenCache migration process. Issue #450.
  • Bug Fix: Fixed a minor UI issue where the ZenCache Dashboard icon would occasionally flash to a black color when refreshing the Dashboard. Props @jaswsinc. Issue #453.
  • Bug Fix: When ZenCache was running on an installation of PHP with open_basedir restrictions applied, calls to is_dir() were triggering a PHP Warning while looking for a writable temporary directory. This bug has been fixed. Issue #456.
  • Bug Fix: Fixed a bug where changing the permalink for a published post would result in the cache file for the old permalink being left behind and as a result both the old and the new permalink would be accessible, instead of WordPress redirecting the old permalink to the new one. This has been fixed and ZenCache now properly clears the old cache file when changing the permalink on a published post. Issue #359.
  • Bug Fix: Fixed a bug where transitioning a Published post back to Pending or Draft would not automatically clear the cache file. This resulted in the post remaining accessible on the frontend despite being set as Pending or Draft. ZenCache now properly clears the cache file automatically when transitioning from Published to Pending or Draft, which prevents access to the post as expected. Issue #441.
  • Bug Fix (Pro): Some users reported seeing Warning: trim() expects parameter 1 to be string. This was produced by a low-impact bug that has been fixed in this release. Issue #455.
  • Bug Fix (Pro): Some users running the HTML Compressor reported seeing 403 Forbidden errors related to loading the compressed/minified files. This was a permissions-related issue that has been resolved in this release. Props @superian and @jaswsinc. See Issue #50.
  • Bug Fix (Pro): Some HTTP requests made by the HTML Compressor to servers configured to reject HTTP requests that don't include a User-Agent were failing. A User-Agent is now always used in all requests. Props @jaswsinc. See Issue #49.
  • Minimum Required PHP Version Bumped to PHP v5.3.2+: The minimum PHP version required for ZenCache has been bumped up to PHP v5.3.2+ (from PHP v5.3+). The ZenCache cache locking mechanism, specifically the use of flock(), requires behavior introduced in PHP v5.3.2. Issue #444.

Upgrading to the Latest Version

ZenCache Lite users should receive an update notification from within their WordPress Dashboard (Dashboard → Updates).

ZenCache Pro users who have configured the Plugin Updater (Dashboard → ZenCache → Plugin Updater) should receive a notification to upgrade on the WordPress Dashboard. If you have not configured the Plugin Updater, you can download the latest version of ZenCache Pro by logging into your ZenCache.com account here.

Please report bugs and feedback on GitHub. If you are a ZenCache Pro user and require priorty support, please open a support ticket here.