If you use protected posts on your WordPress blog you may have noticed that WP-Cache doesn’t cache those password protected posts properly. I didn’t know this, but James Farmer did so I went looking and found a fix.
In the plugins/wp-cache/ directory, open wp-cache-phase1.php in your favourite text editor and look for the following line:
if (preg_match(“/^wordpress|^comment_author_email_/”, $key)) {
Replace that line with this one:
if (preg_match(“/^wp-postpass|^wordpress|^comment_author_email_/”, $key)) {
Save and upload the file if necessary and clear your cache. Password protect posts should be cached properly now!
Ironically, this post wasn’t being cached by WP-Cache because the url contains the string “wp-“. Here’s how to fix that bug. Open wp-cache-phase2.php and look for the following line:
if (strlen($expr) > 0 && strstr($uri, $expr))
Change it to read:
if (strlen($expr) > 0 && substr( $uri, 1, strlen($expr) ) == $expr )
Phew. This post is now cached.