Version Description
Download this release
Release Info
| Developer | donncha |
| Plugin | |
| Version | 0.8.7 |
| Comparing to | |
| See all releases | |
Code changes from version 0.8.6 to 0.8.7
- Changelog.txt +21 -0
- readme.txt +1 -1
- wp-cache-phase2.php +39 -14
- wp-cache.php +9 -8
Changelog.txt
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
2008-12-04 18:12 donncha
|
| 2 |
|
| 3 |
* wp-cache-phase1.php: Added "WP-Super-Cache: WP-Cache" header for
|
| 1 |
+
2009-01-09 11:04 donncha
|
| 2 |
+
|
| 3 |
+
* readme.txt, wp-cache.php: Bump version to 0.8.7
|
| 4 |
+
|
| 5 |
+
2009-01-09 10:59 donncha
|
| 6 |
+
|
| 7 |
+
* wp-cache-phase2.php, wp-cache.php: Change default expiry time to
|
| 8 |
+
10 minutes
|
| 9 |
+
Only clean out 100 files at a time. Should help with very large
|
| 10 |
+
sites.
|
| 11 |
+
Fix file pointer.
|
| 12 |
+
|
| 13 |
+
2008-12-05 09:57 donncha
|
| 14 |
+
|
| 15 |
+
* wp-cache.php: Fix term -> meta typo, props kettari,
|
| 16 |
+
http://wordpress.org/support/topic/222613?replies=1
|
| 17 |
+
|
| 18 |
+
2008-12-04 18:13 donncha
|
| 19 |
+
|
| 20 |
+
* Changelog.txt: Updated changelog for 0.8.6
|
| 21 |
+
|
| 22 |
2008-12-04 18:12 donncha
|
| 23 |
|
| 24 |
* wp-cache-phase1.php: Added "WP-Super-Cache: WP-Cache" header for
|
readme.txt
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
Contributors: donncha
|
| 3 |
Tags: performance,caching,wp-cache,wp-super-cache
|
| 4 |
Tested up to: 2.7
|
| 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.
|
| 2 |
Contributors: donncha
|
| 3 |
Tags: performance,caching,wp-cache,wp-super-cache
|
| 4 |
Tested up to: 2.7
|
| 5 |
+
Stable tag: 0.8.7
|
| 6 |
Requires at least: 2.2
|
| 7 |
|
| 8 |
A very fast caching engine for WordPress that produces static html files.
|
wp-cache-phase2.php
CHANGED
|
@@ -224,7 +224,7 @@ function wp_cache_ob_callback($buffer) {
|
|
| 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( $
|
| 228 |
unlink( $tmp_wpcache_filename );
|
| 229 |
return $buffer;
|
| 230 |
}
|
|
@@ -232,9 +232,9 @@ function wp_cache_ob_callback($buffer) {
|
|
| 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( $
|
| 236 |
unlink( $tmp_wpcache_filename );
|
| 237 |
-
fclose( $
|
| 238 |
unlink( $tmp_cache_filename );
|
| 239 |
return $buffer;
|
| 240 |
}
|
|
@@ -322,8 +322,21 @@ function wp_cache_phase2_clean_cache($file_prefix) {
|
|
| 322 |
wp_cache_writers_exit();
|
| 323 |
}
|
| 324 |
|
| 325 |
-
function prune_super_cache($directory, $force = false, $rename = false) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 326 |
global $cache_max_time, $cache_path, $super_cache_enabled, $cache_rebuild_files;
|
|
|
|
| 327 |
|
| 328 |
if( !is_admin() && $super_cache_enabled == 0 )
|
| 329 |
return false;
|
|
@@ -341,13 +354,21 @@ function prune_super_cache($directory, $force = false, $rename = false) {
|
|
| 341 |
$entries = glob($directory. '*');
|
| 342 |
if( is_array( $entries ) && !empty( $entries ) ) foreach ($entries as $entry) {
|
| 343 |
if ($entry != '.' && $entry != '..') {
|
| 344 |
-
|
| 345 |
-
|
| 346 |
-
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 350 |
@rmdir( $entry );
|
|
|
|
|
|
|
| 351 |
}
|
| 352 |
}
|
| 353 |
}
|
|
@@ -357,12 +378,16 @@ function prune_super_cache($directory, $force = false, $rename = false) {
|
|
| 357 |
$oktodelete = false;
|
| 358 |
if( $oktodelete && !$rename ) {
|
| 359 |
@unlink( $directory );
|
|
|
|
| 360 |
} elseif( $oktodelete && $rename ) {
|
| 361 |
if( $cache_rebuild_files && substr( $directory, -14 ) != '.needs-rebuild' ) {
|
| 362 |
-
if( @rename($directory, $directory . '.needs-rebuild') )
|
| 363 |
@touch( $directory . '.needs-rebuild' );
|
|
|
|
|
|
|
| 364 |
} else {
|
| 365 |
@unlink( $directory );
|
|
|
|
| 366 |
}
|
| 367 |
|
| 368 |
}
|
|
@@ -483,7 +508,7 @@ function wp_cache_shutdown_callback() {
|
|
| 483 |
}
|
| 484 |
|
| 485 |
if( !isset( $wp_cache_gc ) )
|
| 486 |
-
$wp_cache_gc =
|
| 487 |
$last_gc = get_option( "wpsupercache_gc_time" );
|
| 488 |
|
| 489 |
if( !$last_gc ) {
|
|
@@ -605,10 +630,10 @@ function wp_cache_gc_cron() {
|
|
| 605 |
global $file_prefix, $wp_cache_gc;
|
| 606 |
|
| 607 |
if( !isset( $wp_cache_gc ) )
|
| 608 |
-
$wp_cache_gc =
|
| 609 |
|
| 610 |
if( !wp_cache_phase2_clean_expired($file_prefix ) )
|
| 611 |
-
update_option( 'wpsupercache_gc_time', time() - ( $wp_cache_gc -
|
| 612 |
}
|
| 613 |
|
| 614 |
?>
|
| 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( $fr );
|
| 228 |
unlink( $tmp_wpcache_filename );
|
| 229 |
return $buffer;
|
| 230 |
}
|
| 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( $fr );
|
| 236 |
unlink( $tmp_wpcache_filename );
|
| 237 |
+
fclose( $fr2 );
|
| 238 |
unlink( $tmp_cache_filename );
|
| 239 |
return $buffer;
|
| 240 |
}
|
| 322 |
wp_cache_writers_exit();
|
| 323 |
}
|
| 324 |
|
| 325 |
+
function prune_super_cache( $directory, $force = false, $rename = false ) {
|
| 326 |
+
global $gc_file_counter;
|
| 327 |
+
$c = 0;
|
| 328 |
+
while( $c < 20 && is_dir( $directory ) ) {
|
| 329 |
+
$gc_file_counter = 0;
|
| 330 |
+
sc_garbage_collection( $directory, $force, $rename );
|
| 331 |
+
$c++;
|
| 332 |
+
if( $gc_file_counter == 0 )
|
| 333 |
+
$c = 20;
|
| 334 |
+
}
|
| 335 |
+
}
|
| 336 |
+
|
| 337 |
+
function sc_garbage_collection( $directory, $force = false, $rename = false ) {
|
| 338 |
global $cache_max_time, $cache_path, $super_cache_enabled, $cache_rebuild_files;
|
| 339 |
+
global $gc_file_counter;
|
| 340 |
|
| 341 |
if( !is_admin() && $super_cache_enabled == 0 )
|
| 342 |
return false;
|
| 354 |
$entries = glob($directory. '*');
|
| 355 |
if( is_array( $entries ) && !empty( $entries ) ) foreach ($entries as $entry) {
|
| 356 |
if ($entry != '.' && $entry != '..') {
|
| 357 |
+
if( $gc_file_counter < 100 ) {
|
| 358 |
+
sc_garbage_collection( $entry, $force, $rename );
|
| 359 |
+
}
|
| 360 |
+
// If entry is a directory, AND it's not a protected one, AND we're either forcing the delete, OR the file is out of date,
|
| 361 |
+
if( is_dir( $entry ) &&
|
| 362 |
+
!in_array( $entry, $protected_directories ) &&
|
| 363 |
+
( $force || @filemtime( $entry ) + $cache_max_time <= $now ) ) {
|
| 364 |
+
// if the directory isn't empty can't delete it
|
| 365 |
+
if( is_array( glob($entry. '/*') ) ) {
|
| 366 |
+
continue;
|
| 367 |
+
}
|
| 368 |
+
if( !$rename ) {
|
| 369 |
@rmdir( $entry );
|
| 370 |
+
$gc_file_counter++;
|
| 371 |
+
}
|
| 372 |
}
|
| 373 |
}
|
| 374 |
}
|
| 378 |
$oktodelete = false;
|
| 379 |
if( $oktodelete && !$rename ) {
|
| 380 |
@unlink( $directory );
|
| 381 |
+
$gc_file_counter++;
|
| 382 |
} elseif( $oktodelete && $rename ) {
|
| 383 |
if( $cache_rebuild_files && substr( $directory, -14 ) != '.needs-rebuild' ) {
|
| 384 |
+
if( @rename($directory, $directory . '.needs-rebuild') ) {
|
| 385 |
@touch( $directory . '.needs-rebuild' );
|
| 386 |
+
$gc_file_counter++;
|
| 387 |
+
}
|
| 388 |
} else {
|
| 389 |
@unlink( $directory );
|
| 390 |
+
$gc_file_counter++;
|
| 391 |
}
|
| 392 |
|
| 393 |
}
|
| 508 |
}
|
| 509 |
|
| 510 |
if( !isset( $wp_cache_gc ) )
|
| 511 |
+
$wp_cache_gc = 600;
|
| 512 |
$last_gc = get_option( "wpsupercache_gc_time" );
|
| 513 |
|
| 514 |
if( !$last_gc ) {
|
| 630 |
global $file_prefix, $wp_cache_gc;
|
| 631 |
|
| 632 |
if( !isset( $wp_cache_gc ) )
|
| 633 |
+
$wp_cache_gc = 600;
|
| 634 |
|
| 635 |
if( !wp_cache_phase2_clean_expired($file_prefix ) )
|
| 636 |
+
update_option( 'wpsupercache_gc_time', time() - ( $wp_cache_gc - 300 ) ); // if GC failed then run it again in 5 minutes
|
| 637 |
}
|
| 638 |
|
| 639 |
?>
|
wp-cache.php
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 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 |
*/
|
|
@@ -661,15 +661,16 @@ function wp_cache_edit_max_time () {
|
|
| 661 |
echo '<label for="wp_max_time">Expire time:</label> ';
|
| 662 |
echo "<input type=\"text\" size=6 name=\"wp_max_time\" value=\"$cache_max_time\" /> seconds<br />";
|
| 663 |
if( !isset( $wp_cache_gc ) ) {
|
| 664 |
-
$wp_cache_gc =
|
| 665 |
-
} elseif( $wp_cache_gc != '3600' && $wp_cache_gc != '21600' && $wp_cache_gc != '86400' ) {
|
| 666 |
-
$wp_cache_gc = '
|
| 667 |
}
|
| 668 |
echo "<h4>Garbage Collection</h4><p>How often should expired files be deleted?</p>";
|
| 669 |
-
echo "<ul><li><input type='radio' name='wp_cache_gc' value='
|
|
|
|
| 670 |
echo "<li><input type='radio' name='wp_cache_gc' value='21600'" . ( $wp_cache_gc == 21600 ? ' checked=checked' : '' ) . " /> Once every 6 hours. </li>\n";
|
| 671 |
echo "<li><input type='radio' name='wp_cache_gc' value='86400'" . ( $wp_cache_gc == 86400 ? ' checked=checked' : '' ) . " /> Once every 24 hours.</li></ul>\n";
|
| 672 |
-
echo "<p>Checking for and deleting expired files is expensive, but it's expensive leaving them there too. On a very busy site you
|
| 673 |
echo '<div><input type="submit" ' . SUBMITDISABLED . 'value="Change expiration »" /></div>';
|
| 674 |
wp_nonce_field('wp-cache');
|
| 675 |
echo "</form>\n";
|
|
@@ -1177,7 +1178,7 @@ function wp_cache_clean_cache($file_prefix) {
|
|
| 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', '.
|
| 1181 |
}
|
| 1182 |
}
|
| 1183 |
closedir($handle);
|
|
@@ -1208,7 +1209,7 @@ function wp_cache_clean_expired($file_prefix) {
|
|
| 1208 |
if ( preg_match($expr, $file) &&
|
| 1209 |
(filemtime($cache_path . $file) + $cache_max_time) <= $now) {
|
| 1210 |
unlink($cache_path . $file);
|
| 1211 |
-
unlink($cache_path . 'meta/' . str_replace( '.html', '.
|
| 1212 |
}
|
| 1213 |
}
|
| 1214 |
closedir($handle);
|
| 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
|
| 7 |
Author: Donncha O Caoimh
|
| 8 |
Author URI: http://ocaoimh.ie/
|
| 9 |
*/
|
| 661 |
echo '<label for="wp_max_time">Expire time:</label> ';
|
| 662 |
echo "<input type=\"text\" size=6 name=\"wp_max_time\" value=\"$cache_max_time\" /> seconds<br />";
|
| 663 |
if( !isset( $wp_cache_gc ) ) {
|
| 664 |
+
$wp_cache_gc = 600;
|
| 665 |
+
} elseif( $wp_cache_gc != 600 && $wp_cache_gc != '3600' && $wp_cache_gc != '21600' && $wp_cache_gc != '86400' ) {
|
| 666 |
+
$wp_cache_gc = '600';
|
| 667 |
}
|
| 668 |
echo "<h4>Garbage Collection</h4><p>How often should expired files be deleted?</p>";
|
| 669 |
+
echo "<ul><li><input type='radio' name='wp_cache_gc' value='600'" . ( $wp_cache_gc == 600 ? ' checked=checked' : '' ) . " /> Once every 10 minutes.</li>\n";
|
| 670 |
+
echo "<li><input type='radio' name='wp_cache_gc' value='3600'" . ( $wp_cache_gc == 3600 ? ' checked=checked' : '' ) . " /> Once every hour.</li>\n";
|
| 671 |
echo "<li><input type='radio' name='wp_cache_gc' value='21600'" . ( $wp_cache_gc == 21600 ? ' checked=checked' : '' ) . " /> Once every 6 hours. </li>\n";
|
| 672 |
echo "<li><input type='radio' name='wp_cache_gc' value='86400'" . ( $wp_cache_gc == 86400 ? ' checked=checked' : '' ) . " /> Once every 24 hours.</li></ul>\n";
|
| 673 |
+
echo "<p>Checking for and deleting expired files is expensive, but it's expensive leaving them there too. On a very busy site you should set this to <em>10 minutes</em>. Experiment with different values and visit this page to see how many expired files remain at different times during the day.</p>";
|
| 674 |
echo '<div><input type="submit" ' . SUBMITDISABLED . 'value="Change expiration »" /></div>';
|
| 675 |
wp_nonce_field('wp-cache');
|
| 676 |
echo "</form>\n";
|
| 1178 |
while ( false !== ($file = readdir($handle))) {
|
| 1179 |
if ( preg_match($expr, $file) ) {
|
| 1180 |
@unlink($cache_path . $file);
|
| 1181 |
+
@unlink($cache_path . 'meta/' . str_replace( '.html', '.meta', $file ) );
|
| 1182 |
}
|
| 1183 |
}
|
| 1184 |
closedir($handle);
|
| 1209 |
if ( preg_match($expr, $file) &&
|
| 1210 |
(filemtime($cache_path . $file) + $cache_max_time) <= $now) {
|
| 1211 |
unlink($cache_path . $file);
|
| 1212 |
+
unlink($cache_path . 'meta/' . str_replace( '.html', '.meta', $file ) );
|
| 1213 |
}
|
| 1214 |
}
|
| 1215 |
closedir($handle);
|
