Version Description
Download this release
Release Info
Developer | donncha |
Plugin | WP Super Cache |
Version | 0.8.6 |
Comparing to | |
See all releases |
Code changes from version 0.8.5 to 0.8.6
- Changelog.txt +49 -0
- readme.txt +8 -3
- wp-cache-phase1.php +4 -3
- wp-cache-phase2.php +24 -10
- wp-cache.php +10 -8
Changelog.txt
CHANGED
@@ -1,3 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2008-11-25 12:58 donncha
|
2 |
|
3 |
* readme.txt, wp-cache.php: Bump version number to 0.8.5
|
1 |
+
2008-12-04 18:12 donncha
|
2 |
+
|
3 |
+
* wp-cache-phase1.php: Added "WP-Super-Cache: WP-Cache" header for
|
4 |
+
cached php files.
|
5 |
+
|
6 |
+
2008-12-04 17:59 donncha
|
7 |
+
|
8 |
+
* readme.txt, wp-cache.php: Bump version numberb to 2.7
|
9 |
+
|
10 |
+
2008-12-04 17:44 donncha
|
11 |
+
|
12 |
+
* wp-cache.php: Hide unlink errors
|
13 |
+
|
14 |
+
2008-12-04 16:53 donncha
|
15 |
+
|
16 |
+
* wp-cache-phase2.php: Use uniqid() instead of tempnam() to
|
17 |
+
generate temporary filenames.
|
18 |
+
No need for chmod.
|
19 |
+
Fixed minor typo
|
20 |
+
|
21 |
+
2008-12-04 13:40 donncha
|
22 |
+
|
23 |
+
* wp-cache-phase2.php: Record time of cache generation
|
24 |
+
|
25 |
+
2008-12-04 13:27 donncha
|
26 |
+
|
27 |
+
* readme.txt: Added Apache configuration docs on AllowOverride
|
28 |
+
|
29 |
+
2008-12-02 11:00 donncha
|
30 |
+
|
31 |
+
* wp-cache.php: If WP_CACHE is not enabled, but the define() line
|
32 |
+
is in wp-config.php, stop, because it's probably commented out.
|
33 |
+
|
34 |
+
2008-12-01 11:38 donncha
|
35 |
+
|
36 |
+
* wp-cache-phase2.php: Abort caching if plugin can't write to any
|
37 |
+
cache file, and report error
|
38 |
+
$gzsize may not survive to shutdown callback. Get the filesize
|
39 |
+
again
|
40 |
+
|
41 |
+
2008-12-01 11:37 donncha
|
42 |
+
|
43 |
+
* wp-cache-phase1.php: Push the headers into the headers array, not
|
44 |
+
the meta object
|
45 |
+
|
46 |
+
2008-11-25 12:58 donncha
|
47 |
+
|
48 |
+
* Changelog.txt: Updated changelog
|
49 |
+
|
50 |
2008-11-25 12:58 donncha
|
51 |
|
52 |
* readme.txt, wp-cache.php: Bump version number to 0.8.5
|
readme.txt
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
=== WP Super Cache ===
|
2 |
Contributors: donncha
|
3 |
-
Tags: performance,caching,wp-cache
|
4 |
-
Tested up to: 2.
|
5 |
-
Stable tag: 0.8.
|
6 |
Requires at least: 2.2
|
7 |
|
8 |
A very fast caching engine for WordPress that produces static html files.
|
@@ -75,6 +75,11 @@ The [changelog](http://svn.wp-plugins.org/wp-super-cache/trunk/Changelog.txt) is
|
|
75 |
`</IfModule>`
|
76 |
``
|
77 |
`# END supercache`
|
|
|
|
|
|
|
|
|
|
|
78 |
|
79 |
== Frequently Asked Questions ==
|
80 |
|
1 |
=== WP Super Cache ===
|
2 |
Contributors: donncha
|
3 |
+
Tags: performance,caching,wp-cache,wp-super-cache
|
4 |
+
Tested up to: 2.7
|
5 |
+
Stable tag: 0.8.6
|
6 |
Requires at least: 2.2
|
7 |
|
8 |
A very fast caching engine for WordPress that produces static html files.
|
75 |
`</IfModule>`
|
76 |
``
|
77 |
`# END supercache`
|
78 |
+
9. Apache must be configured to allow the modules above. If you receive a "500 internal error" when serving requests to anonymous users you need to dig into your Apache configuration. This configuration in my virtual host works for me:
|
79 |
+
|
80 |
+
`<Directory /home/www/>`
|
81 |
+
`AllowOverride All`
|
82 |
+
`</Directory>`
|
83 |
|
84 |
== Frequently Asked Questions ==
|
85 |
|
wp-cache-phase1.php
CHANGED
@@ -67,15 +67,16 @@ if( file_exists( $cache_file ) && ($mtime = @filemtime($meta_pathname)) ) {
|
|
67 |
return;
|
68 |
// Sometimes the gzip headers are lost. If this is a gzip capable client, send those headers.
|
69 |
if( $wp_cache_gzip_encoding && !in_array( 'Content-Encoding: ' . $wp_cache_gzip_encoding, $meta->headers ) ) {
|
70 |
-
array_push($meta, 'Content-Encoding: ' . $wp_cache_gzip_encoding);
|
71 |
-
array_push($meta, 'Vary: Accept-Encoding, Cookie');
|
72 |
-
array_push($meta, 'Content-Length: ' . filesize( $cache_file ) );
|
73 |
}
|
74 |
foreach ($meta->headers as $header) {
|
75 |
// godaddy fix, via http://blog.gneu.org/2008/05/wp-supercache-on-godaddy/ and http://www.littleredrails.com/blog/2007/09/08/using-wp-cache-on-godaddy-500-error/
|
76 |
if( strpos( $header, 'Last-Modified:' ) === false )
|
77 |
header($header);
|
78 |
}
|
|
|
79 |
if ( !($content_size = @filesize($cache_file)) > 0 || $mtime < @filemtime($cache_file))
|
80 |
return;
|
81 |
if ($meta->dynamic) {
|
67 |
return;
|
68 |
// Sometimes the gzip headers are lost. If this is a gzip capable client, send those headers.
|
69 |
if( $wp_cache_gzip_encoding && !in_array( 'Content-Encoding: ' . $wp_cache_gzip_encoding, $meta->headers ) ) {
|
70 |
+
array_push($meta->headers, 'Content-Encoding: ' . $wp_cache_gzip_encoding);
|
71 |
+
array_push($meta->headers, 'Vary: Accept-Encoding, Cookie');
|
72 |
+
array_push($meta->headers, 'Content-Length: ' . filesize( $cache_file ) );
|
73 |
}
|
74 |
foreach ($meta->headers as $header) {
|
75 |
// godaddy fix, via http://blog.gneu.org/2008/05/wp-supercache-on-godaddy/ and http://www.littleredrails.com/blog/2007/09/08/using-wp-cache-on-godaddy-500-error/
|
76 |
if( strpos( $header, 'Last-Modified:' ) === false )
|
77 |
header($header);
|
78 |
}
|
79 |
+
header( 'WP-Super-Cache: WP-Cache' );
|
80 |
if ( !($content_size = @filesize($cache_file)) > 0 || $mtime < @filemtime($cache_file))
|
81 |
return;
|
82 |
if ($meta->dynamic) {
|
wp-cache-phase2.php
CHANGED
@@ -206,7 +206,7 @@ function wp_cache_ob_callback($buffer) {
|
|
206 |
if( !empty( $_GET ) || is_feed() || ( $super_cache_enabled == true && is_dir( substr( $supercachedir, 0, -1 ) . '.disabled' ) ) )
|
207 |
$super_cache_enabled = false;
|
208 |
|
209 |
-
$tmp_wpcache_filename =
|
210 |
$fr = @fopen($tmp_wpcache_filename, 'w');
|
211 |
if (!$fr) {
|
212 |
$buffer .= "<!-- File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $cache_path ) . $cache_filename . " -->\n";
|
@@ -220,10 +220,25 @@ function wp_cache_ob_callback($buffer) {
|
|
220 |
$do_cache = apply_filters( 'do_createsupercache', $user_info );
|
221 |
if( $user_info == '' || $do_cache === true ) {
|
222 |
$cache_fname = "{$dir}index.html";
|
223 |
-
$tmp_cache_filename =
|
224 |
$fr2 = @fopen( $tmp_cache_filename, 'w' );
|
225 |
-
if(
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
$gz = @fopen( $tmp_cache_filename . ".gz", 'w');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
}
|
228 |
}
|
229 |
|
@@ -244,7 +259,7 @@ function wp_cache_ob_callback($buffer) {
|
|
244 |
fputs($gz, gzencode( $store . '<!-- super cache gz -->', 1, FORCE_GZIP ) );
|
245 |
} else {
|
246 |
$buffer = apply_filters( 'wpsupercache_buffer', $buffer );
|
247 |
-
$log = "<!-- Cached page
|
248 |
|
249 |
if( $gz || $wp_cache_gzip_encoding ) {
|
250 |
$gzdata = gzencode( $buffer . $log . "<!-- Compression = gzip -->", 3, FORCE_GZIP );
|
@@ -261,20 +276,19 @@ function wp_cache_ob_callback($buffer) {
|
|
261 |
fputs($fr, $buffer.$log);
|
262 |
}
|
263 |
if( $fr2 )
|
264 |
-
fputs($fr2, $buffer . '<!-- super cache -->' );
|
265 |
if( $gz )
|
266 |
fwrite($gz, $gzdata );
|
|
|
267 |
}
|
268 |
$new_cache = true;
|
269 |
fclose($fr);
|
270 |
-
@chmod( $tmp_wpcache_filename, 0666 & ~umask());
|
271 |
if( !@rename( $tmp_wpcache_filename, $cache_path . $cache_filename ) ) {
|
272 |
unlink( $cache_path . $cache_filename );
|
273 |
rename( $tmp_wpcache_filename, $cache_path . $cache_filename );
|
274 |
}
|
275 |
if( $fr2 ) {
|
276 |
fclose($fr2);
|
277 |
-
@chmod( $tmp_cache_filename, 0666 & ~umask());
|
278 |
if( !@rename( $tmp_cache_filename, $cache_fname ) ) {
|
279 |
unlink( $cache_fname );
|
280 |
rename( $tmp_cache_filename, $cache_fname );
|
@@ -447,13 +461,13 @@ function wp_cache_shutdown_callback() {
|
|
447 |
if( $wp_cache_gzip_encoding && !in_array( 'Content-Encoding: ' . $wp_cache_gzip_encoding, $wp_cache_meta_object->headers ) ) {
|
448 |
array_push($wp_cache_meta_object->headers, 'Content-Encoding: ' . $wp_cache_gzip_encoding);
|
449 |
array_push($wp_cache_meta_object->headers, 'Vary: Accept-Encoding, Cookie');
|
450 |
-
array_push($wp_cache_meta_object->headers, 'Content-Length: ' . $
|
451 |
}
|
452 |
|
453 |
$serial = serialize($wp_cache_meta_object);
|
454 |
if( !wp_cache_writers_entry() )
|
455 |
return false;
|
456 |
-
$tmp_meta_filename =
|
457 |
$fr = @fopen( $tmp_meta_filename, 'w');
|
458 |
if( !$fr )
|
459 |
@mkdir( $cache_path . 'meta' );
|
@@ -463,7 +477,7 @@ function wp_cache_shutdown_callback() {
|
|
463 |
@chmod( $tmp_meta_filename, 0666 & ~umask());
|
464 |
if( !@rename( $tmp_meta_filename, $cache_path . 'meta/' . $meta_file ) ) {
|
465 |
unlink( $cache_path . 'meta/' . $meta_file );
|
466 |
-
rename( $
|
467 |
}
|
468 |
wp_cache_writers_exit();
|
469 |
}
|
206 |
if( !empty( $_GET ) || is_feed() || ( $super_cache_enabled == true && is_dir( substr( $supercachedir, 0, -1 ) . '.disabled' ) ) )
|
207 |
$super_cache_enabled = false;
|
208 |
|
209 |
+
$tmp_wpcache_filename = $cache_path . uniqid( mt_rand(), true ) . '.tmp';
|
210 |
$fr = @fopen($tmp_wpcache_filename, 'w');
|
211 |
if (!$fr) {
|
212 |
$buffer .= "<!-- File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $cache_path ) . $cache_filename . " -->\n";
|
220 |
$do_cache = apply_filters( 'do_createsupercache', $user_info );
|
221 |
if( $user_info == '' || $do_cache === true ) {
|
222 |
$cache_fname = "{$dir}index.html";
|
223 |
+
$tmp_cache_filename = $dir . uniqid( mt_rand(), true ) . '.tmp';
|
224 |
$fr2 = @fopen( $tmp_cache_filename, 'w' );
|
225 |
+
if (!$fr2) {
|
226 |
+
$buffer .= "<!-- File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $tmp_cache_filename ) . " -->\n";
|
227 |
+
fclose( $fp );
|
228 |
+
unlink( $tmp_wpcache_filename );
|
229 |
+
return $buffer;
|
230 |
+
}
|
231 |
+
if( $cache_compression ) {
|
232 |
$gz = @fopen( $tmp_cache_filename . ".gz", 'w');
|
233 |
+
if (!$gz) {
|
234 |
+
$buffer .= "<!-- File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $tmp_cache_filename ) . ".gz -->\n";
|
235 |
+
fclose( $fp );
|
236 |
+
unlink( $tmp_wpcache_filename );
|
237 |
+
fclose( $fp2 );
|
238 |
+
unlink( $tmp_cache_filename );
|
239 |
+
return $buffer;
|
240 |
+
}
|
241 |
+
}
|
242 |
}
|
243 |
}
|
244 |
|
259 |
fputs($gz, gzencode( $store . '<!-- super cache gz -->', 1, FORCE_GZIP ) );
|
260 |
} else {
|
261 |
$buffer = apply_filters( 'wpsupercache_buffer', $buffer );
|
262 |
+
$log = "<!-- Cached page generated by WP-Super-Cache on " . current_time( 'mysql' ) . " -->\n";
|
263 |
|
264 |
if( $gz || $wp_cache_gzip_encoding ) {
|
265 |
$gzdata = gzencode( $buffer . $log . "<!-- Compression = gzip -->", 3, FORCE_GZIP );
|
276 |
fputs($fr, $buffer.$log);
|
277 |
}
|
278 |
if( $fr2 )
|
279 |
+
fputs($fr2, $buffer . $log . '<!-- super cache -->' );
|
280 |
if( $gz )
|
281 |
fwrite($gz, $gzdata );
|
282 |
+
$buffer .= $log;
|
283 |
}
|
284 |
$new_cache = true;
|
285 |
fclose($fr);
|
|
|
286 |
if( !@rename( $tmp_wpcache_filename, $cache_path . $cache_filename ) ) {
|
287 |
unlink( $cache_path . $cache_filename );
|
288 |
rename( $tmp_wpcache_filename, $cache_path . $cache_filename );
|
289 |
}
|
290 |
if( $fr2 ) {
|
291 |
fclose($fr2);
|
|
|
292 |
if( !@rename( $tmp_cache_filename, $cache_fname ) ) {
|
293 |
unlink( $cache_fname );
|
294 |
rename( $tmp_cache_filename, $cache_fname );
|
461 |
if( $wp_cache_gzip_encoding && !in_array( 'Content-Encoding: ' . $wp_cache_gzip_encoding, $wp_cache_meta_object->headers ) ) {
|
462 |
array_push($wp_cache_meta_object->headers, 'Content-Encoding: ' . $wp_cache_gzip_encoding);
|
463 |
array_push($wp_cache_meta_object->headers, 'Vary: Accept-Encoding, Cookie');
|
464 |
+
array_push($wp_cache_meta_object->headers, 'Content-Length: ' . filesize( $cache_path . $cache_filename ));
|
465 |
}
|
466 |
|
467 |
$serial = serialize($wp_cache_meta_object);
|
468 |
if( !wp_cache_writers_entry() )
|
469 |
return false;
|
470 |
+
$tmp_meta_filename = $cache_path . 'meta/' . uniqid( mt_rand(), true ) . '.tmp';
|
471 |
$fr = @fopen( $tmp_meta_filename, 'w');
|
472 |
if( !$fr )
|
473 |
@mkdir( $cache_path . 'meta' );
|
477 |
@chmod( $tmp_meta_filename, 0666 & ~umask());
|
478 |
if( !@rename( $tmp_meta_filename, $cache_path . 'meta/' . $meta_file ) ) {
|
479 |
unlink( $cache_path . 'meta/' . $meta_file );
|
480 |
+
rename( $tmp_meta_filename, $cache_path . 'meta/' . $meta_file );
|
481 |
}
|
482 |
wp_cache_writers_exit();
|
483 |
}
|
wp-cache.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/*
|
3 |
Plugin Name: WP Super Cache
|
4 |
Plugin URI: http://ocaoimh.ie/wp-super-cache/
|
5 |
-
Description: Very fast caching module for WordPress. Once activated, you must <a href="options-general.php?page=wpsupercache">enable the cache</a>.
|
6 |
-
Version: 0.8.
|
7 |
Author: Donncha O Caoimh
|
8 |
Author URI: http://ocaoimh.ie/
|
9 |
*/
|
@@ -976,7 +976,7 @@ function wp_cache_check_link() {
|
|
976 |
}
|
977 |
|
978 |
function wp_cache_check_global_config() {
|
979 |
-
if( WP_CACHE )
|
980 |
return true;
|
981 |
|
982 |
if ( file_exists( ABSPATH . 'wp-config.php') ) {
|
@@ -985,16 +985,18 @@ function wp_cache_check_global_config() {
|
|
985 |
$global = dirname(ABSPATH) . '/wp-config.php';
|
986 |
}
|
987 |
|
|
|
988 |
$lines = file($global);
|
989 |
foreach($lines as $line) {
|
990 |
if (preg_match('/^\s*define\s*\(\s*\'WP_CACHE\'\s*,\s*(?i:TRUE|1)\s*\)\s*;/', $line)) {
|
991 |
-
|
|
|
992 |
}
|
993 |
}
|
994 |
$line = 'define(\'WP_CACHE\', true);';
|
995 |
if (!is_writeable_ACLSafe($global) || !wp_cache_replace_line('define *\( *\'WP_CACHE\'', $line, $global) ) {
|
996 |
-
echo "<b>Error: WP_CACHE is not enabled</b> in your <code>wp-config.php</code> file and I couldn't
|
997 |
-
echo
|
998 |
return false;
|
999 |
}
|
1000 |
return true;
|
@@ -1174,8 +1176,8 @@ function wp_cache_clean_cache($file_prefix) {
|
|
1174 |
if ( ($handle = opendir( $cache_path )) ) {
|
1175 |
while ( false !== ($file = readdir($handle))) {
|
1176 |
if ( preg_match($expr, $file) ) {
|
1177 |
-
unlink($cache_path . $file);
|
1178 |
-
unlink($cache_path . 'meta/' . str_replace( '.html', '.term', $file ) );
|
1179 |
}
|
1180 |
}
|
1181 |
closedir($handle);
|
2 |
/*
|
3 |
Plugin Name: WP Super Cache
|
4 |
Plugin URI: http://ocaoimh.ie/wp-super-cache/
|
5 |
+
Description: Very fast caching module for WordPress. Once activated, you must <a href="options-general.php?page=wpsupercache">enable the cache</a>.
|
6 |
+
Version: 0.8.6
|
7 |
Author: Donncha O Caoimh
|
8 |
Author URI: http://ocaoimh.ie/
|
9 |
*/
|
976 |
}
|
977 |
|
978 |
function wp_cache_check_global_config() {
|
979 |
+
if( defined( 'WP_CACHE' ) )
|
980 |
return true;
|
981 |
|
982 |
if ( file_exists( ABSPATH . 'wp-config.php') ) {
|
985 |
$global = dirname(ABSPATH) . '/wp-config.php';
|
986 |
}
|
987 |
|
988 |
+
$howtoenable = "Edit <code>$global</code> and add the following line: <br /><code>define('WP_CACHE', true);</code><br />Otherwise, <b>WP-Cache will not be executed</b> by Wordpress core. <br />";
|
989 |
$lines = file($global);
|
990 |
foreach($lines as $line) {
|
991 |
if (preg_match('/^\s*define\s*\(\s*\'WP_CACHE\'\s*,\s*(?i:TRUE|1)\s*\)\s*;/', $line)) {
|
992 |
+
echo $howtoenable;
|
993 |
+
return false;
|
994 |
}
|
995 |
}
|
996 |
$line = 'define(\'WP_CACHE\', true);';
|
997 |
if (!is_writeable_ACLSafe($global) || !wp_cache_replace_line('define *\( *\'WP_CACHE\'', $line, $global) ) {
|
998 |
+
echo "<b>Error: WP_CACHE is not enabled</b> in your <code>wp-config.php</code> file and I couldn't modify it.<br />";
|
999 |
+
echo $howtoenable;
|
1000 |
return false;
|
1001 |
}
|
1002 |
return true;
|
1176 |
if ( ($handle = opendir( $cache_path )) ) {
|
1177 |
while ( false !== ($file = readdir($handle))) {
|
1178 |
if ( preg_match($expr, $file) ) {
|
1179 |
+
@unlink($cache_path . $file);
|
1180 |
+
@unlink($cache_path . 'meta/' . str_replace( '.html', '.term', $file ) );
|
1181 |
}
|
1182 |
}
|
1183 |
closedir($handle);
|