Skip to content
Snippets Groups Projects
Commit 50fded33 authored by Hendrik Klemp's avatar Hendrik Klemp
Browse files

Add Unlimited Cache

- Add Debug Mode
- Add Unlimited Cache
- Clean up code
- Don't cache Search Sites
parent 4ed79941
Branches
Tags
No related merge requests found
...@@ -9,21 +9,24 @@ function getMicroTime($t) ...@@ -9,21 +9,24 @@ function getMicroTime($t)
return ((float) $usec + (float) $sec); 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 $debug = false;
$ip_of_your_website = '127.0.0.1';
/*This is if you want to manually refresh the cache $ip_of_your_website = '127.0.0.1';
ex: http://example.com/sample-post?refresh=changeme */ $secret_string = 'changeme';
$secret_string = "changeme";
if(!defined('WP_USE_THEMES')) {
define('WP_USE_THEMES', true);
}
// so we don't confuse the cloudflare server // so we don't confuse the cloudflare server
if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP']; $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
} }
if(!defined('WP_USE_THEMES')) { if(!defined('WP_USE_THEMES')) {
define('WP_USE_THEMES', true); define('WP_USE_THEMES', true);
} }
...@@ -68,16 +71,25 @@ try { ...@@ -68,16 +71,25 @@ try {
$html_of_page = ob_get_contents(); $html_of_page = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo $html_of_page; echo $html_of_page;
//if the user has the seconds defined in the admin section use it $unlimited = get_option('wp-redis-cache-debug',false);
$usr_seconds = get_option('wp-redis-cache-seconds'); $seconds_cache_redis = get_option('wp-redis-cache-seconds',43200);
if (isset($usr_seconds) && is_numeric($usr_seconds)) { if (!is_numeric($seconds_cache_redis)) {
$seconds_cache_redis = $usr_seconds; $seconds_cache_redis = 43200;
} }
// When a page displays after an "HTTP 404: Not Found" error occurs, do not cache // When a page displays after an "HTTP 404: Not Found" error occurs, do not cache
if (!is_404()) { // When the search was used, do not cache
$redis->setex($redis_key, $seconds_cache_redis, $html_of_page); 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 } 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) { ...@@ -99,4 +111,11 @@ if ($_SERVER['REMOTE_ADDR'] != $ip_of_your_website) {
$end = microtime(); $end = microtime();
$time = (@getMicroTime($end) - @getMicroTime($start)); $time = (@getMicroTime($end) - @getMicroTime($start));
echo "<!-- Cache system by Benjamin Adams. Page generated in " . round($time, 5) . " seconds. -->"; 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 . "-->";
}
} }
...@@ -137,13 +137,15 @@ function edit_redis_options() { ...@@ -137,13 +137,15 @@ function edit_redis_options() {
<p><strong>Seconds of Caching:</strong><br /> <p><strong>Seconds of Caching:</strong><br />
How many seconds would you like to cache? *Recommended 12 hours or 43200 seconds <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> <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> <p><input type="submit" name="Submit" value="Update Options" /></p>
<input type="hidden" name="action" value="update" /> <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> </form>
</div> </div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment