新闻中心

wordpress不用插件的情况下如何实现静态缓存

作者 / 时间 2014-08-05 15:37:32

在大量文章、评论以及插件的数据的情况下wordpress速度的确不敢恭维,这个不是无忧主机的速度问题,而是一旦数量多了就会像抽风一样,那么怎么提高我们的数独呢,之前无忧主机小编曾经介绍过一款非常实用wordpress插件:WP Super Cache,该插件对wordpress有着非常明显的加速优化效果,该插件的Mod_rewrite加速模式加速效果非常好,因为这种模式是直接将网站的页面生成静态的html页面,然后使用Mod_rewrite将请求转发到静态文件,这样就跳过了php解析这一步直接将页面吐出到浏览器,从而达到加速的效果。今天无忧主机小编就教大家不使用插件来静态化缓存wordpress。 1、首先我们需要完成这样的操作,那肯定需要花大量的时间去写这个代码的,其实要实现这样的缓存文件的操作代码并不是很难,我们可以借鉴其他程序的缓存文件的代码,而无忧主机小编的这个代码呢,是借鉴一个OA办公系统的代码,那段代码虽然是Java的缓存的代码,但是思想都是差不多,于此,无忧主机小编就在我们服务器上进行调试,终于数分钟之后完全调试成功,接下来就分享这段代码吧!代码如下: <?php define('CACHE_ROOT', dirname(__FILE__).'/cache'); define('CACHE_LIFE', 86400); define('CACHE_SUFFIX','.html'); $cache_dir = CACHE_ROOT.'/'.substr($file_name,0,2); $cache_file = $cache_dir.'/'.$file_name; if($_SERVER['REQUEST_METHOD']=='GET'){ if(file_exists($cache_file) && time() - filemtime($cache_file) < CACHE_LIFE){ $fp = fopen($cache_file,'rb'); fpassthru($fp); fclose($fp); exit(); } elseif(!file_exists($cache_dir)){ if(!file_exists(CACHE_ROOT)){ mkdir(CACHE_ROOT,0777); chmod(CACHE_ROOT,0777); } mkdir($cache_dir,0777); chmod($cache_dir,0777); } function auto_cache($contents){ global $cache_file; $fp = fopen($cache_file,'wb'); fwrite($fp,$contents); fclose($fp); chmod($cache_file,0777); clean_old_cache(); return $contents; } function clean_old_cache(){ chdir(CACHE_ROOT); foreach (glob("*/*".CACHE_SUFFIX) as $file){ if(time()-filemtime($file)>CACHE_LIFE){ unlink($file); } } } ob_start('auto_cache'); } else{ if(file_exists($cache_file)){ unlink($cache_file); } } ?> 2、把以上代码保存cache.php文件中,上传到网站的根目录,无忧主机的根目录:domains--域名文件夹--public_html。然后在新建一个cache文件夹,权限为777的权限,这个文件夹是写入缓存使用的。 3、然后在根目录下的index.php中加入以下代码: require('cache.php'); 注意:一定要保证缓存目录的可写性,一定要加到文件的最上方,不然等页面完全加载完了才吐出缓存页面那就等于没缓存一样。 这样我们就完成了对wordpress在使用插件的情况下使用静态缓存文件功能。 谢谢站长朋友们的支持与厚爱!

本文地址:https://www.51php.com/wordpress/15623.html

1
1
1
1
1
1
1