diff --git a/index-wp-redis.php b/index-wp-redis.php index 8676ce68c5ef7f39cc967933f29f0c24ade1939a..6f16b901e496aff654c8101540729a550ab6ad00 100644 --- a/index-wp-redis.php +++ b/index-wp-redis.php @@ -9,21 +9,24 @@ function getMicroTime($t) return ((float) $usec + (float) $sec); } -// 12 hours by default, you can change in this in wp-admin options page -$seconds_cache_redis = 60 * 60 * 12; -//You must set this to the IP of your website -$ip_of_your_website = '127.0.0.1'; +$debug = false; -/*This is if you want to manually refresh the cache -ex: http://example.com/sample-post?refresh=changeme */ -$secret_string = "changeme"; +$ip_of_your_website = '127.0.0.1'; +$secret_string = 'changeme'; + + + +if(!defined('WP_USE_THEMES')) { + define('WP_USE_THEMES', true); +} // so we don't confuse the cloudflare server if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP']; } + if(!defined('WP_USE_THEMES')) { define('WP_USE_THEMES', true); } @@ -68,16 +71,25 @@ try { $html_of_page = ob_get_contents(); ob_end_clean(); echo $html_of_page; - - //if the user has the seconds defined in the admin section use it - $usr_seconds = get_option('wp-redis-cache-seconds'); - if (isset($usr_seconds) && is_numeric($usr_seconds)) { - $seconds_cache_redis = $usr_seconds; - } + + $unlimited = get_option('wp-redis-cache-debug',false); + $seconds_cache_redis = get_option('wp-redis-cache-seconds',43200); + if (!is_numeric($seconds_cache_redis)) { + $seconds_cache_redis = 43200; + } + // When a page displays after an "HTTP 404: Not Found" error occurs, do not cache - if (!is_404()) { - $redis->setex($redis_key, $seconds_cache_redis, $html_of_page); + // When the search was used, do not cache + if (!is_404() && !is_search()) { + if ($unlimited) { + $redis->setex($redis_key, $html_of_page); + } + else + { + $redis->setex($redis_key, $seconds_cache_redis, $html_of_page); + } + } } else //either the user is logged in, or is posting a comment, show them uncached { @@ -99,4 +111,11 @@ if ($_SERVER['REMOTE_ADDR'] != $ip_of_your_website) { $end = microtime(); $time = (@getMicroTime($end) - @getMicroTime($start)); echo "<!-- Cache system by Benjamin Adams. Page generated in " . round($time, 5) . " seconds. -->"; + if ($debug) { + echo "<!-- wp-redis-cache-seconds = " . $seconds_cache_redis . " -->"; + echo "<!-- wp-redis-cache-secret = " . $secret_string . "-->"; + echo "<!-- wp-redis-cache-ip = " . $ip_of_your_website . "-->"; + echo "<!-- wp-redis-cache-unlimited = " . $unlimited . "-->"; + echo "<!-- wp-redis-cache-debug = " . $debug . "-->"; + } } diff --git a/wp-redis-cache/options.php b/wp-redis-cache/options.php index bff5470d9400b1451a96c7b8abbe541372240b67..0923754ff6e2f17ebe2e2ebb8fe053e9d01146e2 100644 --- a/wp-redis-cache/options.php +++ b/wp-redis-cache/options.php @@ -137,13 +137,15 @@ function edit_redis_options() { <p><strong>Seconds of Caching:</strong><br /> How many seconds would you like to cache? *Recommended 12 hours or 43200 seconds <br /> <input type="text" name="wp-redis-cache-seconds" size="45" value="<?php echo get_option('wp-redis-cache-seconds'); ?>" /></p> - - - + + <p><strong>Cache unlimeted:</strong><br /> + If this options set the cache never expire. This option overiedes the setting "Seconds of Caching"<br /> + <input type="checkbox" name="wp-redis-cache-unlimited" size="45" value="true" <?php checked('true', get_option('wp-redis-cache-unlimited')); ?>/></p> + <p><input type="submit" name="Submit" value="Update Options" /></p> <input type="hidden" name="action" value="update" /> - <input type="hidden" name="page_options" value="wp-redis-cache-seconds,wp-redis-secret" /> + <input type="hidden" name="page_options" value="wp-redis-cache-seconds,wp-redis-cache-unlimited" /> </form> </div>