当前位置:
首页 > WordPress教程 > wordpress免插件实现页面缓存—百度抓取为0

wordpress免插件实现页面缓存—百度抓取为0

最近遇到一件很尴尬的事情,前一段时间事情比较多,内心比较乱,每次打开网站总感觉比别人的慢很多,于是就使用coshtml插件,来实现博客页面静态化。确实能感觉的出来,访问速度提升不少,但也带来了一些小问题,比如静态页以后,默认的搜索功能就不能使用了,这个时候就有必要开启百度站内搜索功能了。

令我尴尬的事情是什么,我在使用了静态页面以后不长时间,关注站长平台的百度抓取次数,开启静态页以后四五天,抓取就变成了0次,连续关注一周并没有恢复抓取的迹象,我可以断定是因为开启静态页面,改变了之前蜘蛛对我站的抓取习惯,导致蜘蛛找不到路径。于是果断删除所有静态文件,删除静态插件恢复到之前伪静态状态。两天过后,百度抓取次数恢复。

wordpress免插件实现页面缓存—百度抓取为0

通常我们博客都是用wp-super-cache或者w3c-total-cache,此类插件确实有效的提高了页面加载速度,但在实际缓存过程中,站点会常出现页面缓存出错导致站点打不开,不知道大伙有没有遇到过,前几天博客就一直出现此类情况.最近这两天在oschina看到了个页面缓存项目,通过该项目可以来实现页面缓存,小伙伴们又可以少用一款插件了(。◕∀◕。)(。◕∀◕。)
项目地址:http://www.oschina.net/code/snippet_105076_4081

 <?php define('CACHE_ROOT', dirname(__FILE__).'/cache'); //缓存存放目录 define('CACHE_TIME', 1800);//缓存时间 单位秒 define('CACHE_FIX','.html'); $CacheName=md5($_SERVER['REQUEST_URI']).CACHE_FIX; //缓存文件名 $CacheDir=CACHE_ROOT.'/'.substr($CacheName,0,1);//缓存文件存放目录 $CacheUrl=$CacheDir.'/'.$CacheName;//缓存文件的完整路径 //GET方式请求才缓存,POST之后一般都希望看到最新的结果 if($_SERVER['REQUEST_METHOD']=='GET'){ //如果缓存文件存在,并且没有过期,就把它读出来。 if(file_exists($CacheUrl) && time()-filemtime($CacheUrl)<CACHE_TIME){ $fp=fopen($CacheUrl,'rb'); fpassthru($fp); fclose($fp); exit; } //判断文件夹是否存在,不存在则创建 elseif(!file_exists($CacheDir)){ if(!file_exists(CACHE_ROOT)){ mkdir(CACHE_ROOT,0777); chmod(CACHE_ROOT,0777); } mkdir($CacheDir,0777); chmod($CacheDir,0777); } //回调函数,当程序结束时自动调用此函数 function AutoCache($contents){ global $CacheUrl; $fp=fopen($CacheUrl,'wb'); fwrite($fp,$contents); fclose($fp); chmod($CacheUrl,0777); //生成新缓存的同时,自动删除所有的老缓存,以节约空间,可忽略。 //DelOldCache(); return $contents; } function DelOldCache(){ chdir(CACHE_ROOT); foreach (glob("*/*".CACHE_FIX) as $file){ if(time()-filemtime($file)>CACHE_TIME)unlink($file); } } //回调函数 auto_cache ob_start('AutoCache'); }else{ //不是GET的请求就删除缓存文件。 if(file_exists($CacheUrl))unlink($CacheUrl); } ?>

保存为cache.php,存放在主题文件夹中
在主题header.php开头–<?php 后添加

include ("cache.php");