| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | 
							- <?php
 
- $start = microtime();
 
- function getMicroTime($t)
 
- {
 
-     list($usec, $sec) = explode(" ", $t);
 
-     return ((float) $usec + (float) $sec);
 
- }
 
- $debug               =  true;
 
- $cache				 =  false;
 
- $ip_of_your_website  =  '127.0.0.1';
 
- $secret_string       =  'changeme';
 
- // 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);
 
- }
 
- $current_url = str_replace(array("?refresh=${secret_string}","&refresh=${secret_string}"), '', "http://${_SERVER['HTTP_HOST']}${_SERVER['REQUEST_URI']}"); //clean up the URL
 
- $redis_key = md5($current_url);
 
- try {
 
-     // check if PECL Extension is available
 
-     if (class_exists('Redis')) {
 
-         $redis = new Redis();
 
-         
 
-         // Sockets can be used as well. Documentation @ https://github.com/nicolasff/phpredis/#connection
 
-         $redis->connect('127.0.0.1');
 
-         
 
-     } else // Fallback to predis5.2.php
 
-     {
 
-         include_once("app/plugins/wp-redis-cache/predis5.2.php"); //we need this to use Redis inside of PHP
 
-         $redis = new Predis_Client();
 
-     }
 
-     
 
-     //Either manual refresh cache by adding ?refresh=secret_string after the URL or somebody posting a comment
 
-     if (isset($_GET['refresh']) || $_GET['refresh'] == $secret_string || strpos($_SERVER['REQUEST_URI'],"refresh=${secret_string}")!==false || ($_SERVER['HTTP_REFERER'] == $current_url && $_SERVER['REQUEST_URI'] != '/' && $_SERVER['REMOTE_ADDR'] != $ip_of_your_website)) {
 
-         
 
-         $redis->del($redis_key);
 
-         require('./wp-blog-header.php');
 
-         
 
-     // This page is cached, lets display it
 
-     } else if ($redis->exists($redis_key)) {
 
- 		$cache  = true;
 
-         $html_of_page = $redis->get($redis_key);
 
- 		echo $html_of_page;
 
-         
 
-      // If the cache does not exist lets display the user the normal page without cache, and then fetch a new cache page
 
-     } else if ($_SERVER['REMOTE_ADDR'] != $ip_of_your_website && strstr($current_url, 'preview=true') == false) {
 
-         
 
-         $isPOST = ($_SERVER['REQUEST_METHOD'] === 'POST') ? 1 : 0;
 
-         
 
-         $loggedIn = preg_match("/wordpress_logged_in/", var_export($_COOKIE, true));
 
-         if ($isPost == 0 && $loggedIn == 0) {
 
-             ob_start();
 
-             require('./wp-blog-header.php');
 
-             $html_of_page = ob_get_contents();
 
-             ob_end_clean();
 
- 			echo $html_of_page;
 
- 			
 
- 			$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
 
- 			// When the search was used, do not cache
 
-             if ((!is_404()) and (!is_search()))  {
 
-                 if ($unlimited) {
 
-                 	$redis->set($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
 
-             {
 
-             require('./wp-blog-header.php');
 
-         }
 
-         
 
-     } else if ($_SERVER['REMOTE_ADDR'] != $ip_of_your_website && strstr($current_url, 'preview=true') == true) {
 
-         require('./wp-blog-header.php');
 
-     }
 
-      // else {   // This is what your server should get if no cache exists  //depricated, as the ob_start() is cleaner
 
-         // require('./wp-blog-header.php');
 
-     // }
 
- } catch (Exception $e) {
 
-     require('./wp-blog-header.php');
 
- }
 
- $end  = microtime();
 
- $time = (@getMicroTime($end) - @getMicroTime($start));
 
- if ($debug) {
 
- 	echo "<!-- Page generated in " . round($time, 5) . " seconds. -->";
 
- 	echo "<!-- Site was cached  = " . $cache . " -->";
 
- 	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 . "-->";
 
- }
 
 
  |