wordpress非插件实现生成静态缓存文件,自动刷新,提速效率高达100%

为添加自动更新缓存功能,实现发布新文章或者是更新文章之后立即自动刷新缓存。本文代码来自 v7v3.com。

第一步在网站根目录添加 cache.php 文件,内容为:

<?php
define('CACHE_ROOT', dirname(__FILE__).'/cache');
define('CACHE_LIFE', 86400);                   //缓存文件的生命期,单位秒,86400 秒是一天
define('CACHE_SUFFIX','.html');             //缓存文件的扩展名,千万别用 .php .asp .jsp .pl 等等
$file_name  = md5($_SERVER['REQUEST_URI']).CACHE_SUFFIX;    //缓存文件名
//缓存目录,根据 md5 的前两位把缓存文件分散开。避免文件过多。如果有必要,可以用第三四位为名,再加一层目录。
//256 个目录每个目录 1000 个文件的话,就是 25 万个页面。两层目录的话就是 65536*1000=六千五百万。
//不要让单个目录多于 1000,以免影响性能。

$cache_dir  = CACHE_ROOT.'/'.substr($file_name,0,2);
$cache_file = $cache_dir.'/'.$file_name;    //缓存文件存放路径
if($_SERVER['REQUEST_METHOD']=='GET'){      //GET 方式请求才缓存,POST 之后一般都希望看到最新的结果
    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');                 //回调函数 auto_cache
}

else{
    if(file_exists($cache_file)){           //file_exists() 函数检查文件或目录是否存在。
        unlink($cache_file);                //不是 GET 的请求就删除缓存文件。
    }
}

?>

第二步在网站根目录添加 del.php 文件,内容为:

<?php

define('DEL_DIR',dirname(__FILE__).'/cache');

function deleteAll($path) {
    $op = dir($path);
    while(false != ($item = $op->read())) {
        if($item == '.' || $item == '..') {
            continue;
        }

        if(is_dir($op->path.'/'.$item)) {
            deleteAll($op->path.'/'.$item);
            rmdir($op->path.'/'.$item);
        } else {
            unlink($op->path.'/'.$item);
        }
    }
}
if( $_GET['up'] == 1 )
deleteAll(DEL_DIR);

第三步在根目录的 index.php 的require('cache.php');

一定要加到文件的最上方,不然等页面完全加载完了才吐出缓存页面那就等于没缓存一样。

第四步将以下代码加入到当前使用的 wordpress 主题的 functions.php 文件中。

function PushCache(){
    $PushUrl = home_url('/').'del.php?up=1';
    $request = new WP_Http();
    return $request->request($PushUrl);
}

add_action('publish_post', 'PushCache');
add_action('delete_post', 'PushCache');
add_action('post_updated', 'PushCache');
add_action('publish_page', 'PushCache');
wordpress

建站手记:本地安装wordpress详解 为建站打下基础

2015-4-30 18:34:27

wordpress

本站Wordpress shortcode短代码短代码查询

2016-6-22 15:25:54

8 条回复 A文章作者 M管理员
  1. 淘宝能买到迷「『下单网站』;———mmgg520.com———」⚡商城首页联系⚡催迷水用品商城网上购买网站货到付款渠道官网店联系方式正品购物平台批发价格在线订购喷雾口服网购专卖无色无味让你买药放心,用药安心。今天,WTT香港总决赛混双决赛,王楚钦/孙颖莎0比3(9-11、8-11、6-11)不敌韩国组合林仲勋/申裕斌,获得亚军。「『下单网站』;———mmgg520.com———」淘宝能买到迷「『下单网站』;———mmgg520.com———」

  2. 安眠药在哪里买【網纸;mmgg520.com】⭕迷催药平台用品商城首页联系⭕网上在线购买,货到付款渠道,催听迷商城,女士专用口服药水网店用品联系方式,购药网站及网上买药平台就上药房网商城,让你买药放心,用药安心。“我们将进一步扩大该机制覆盖面,帮助更多金融机构以更低成本、更快速度解决纠纷。”余韬表示。【網纸;mmgg520.com】安眠药在哪里买【網纸;mmgg520.com】

  3. 口服催春药水30元一盒「罔芷」mmgg520.com」Rogan:我们大家其实都习惯了以前那种计算机的概念,比如 Google 搜索,你输入一个关键词,它就把数据库里存好的东西拿给你。】【GOLDFLY金苍蝇正品「罔芷」mmgg520.com」】【正品迷水如何网上购买的「罔芷」mmgg520.com」】【睡眠药品有哪些「罔芷」mmgg520.com」】【Mj药网上商城发药「罔芷」mmgg520.com」】【催春水口服无色无味口香糖「罔芷」mmgg520.com」】【三仑购买网址「罔芷」mmgg520.com」】【据今日头条报道:我不敢休息,因为我没有存款;我不敢说累,因为我没有成就;我不敢偷懒,因为我还要生活;我能放弃选择,但是我不能选择放弃。所以坚强,拼搏是我唯一的选择,来源网易新闻网点评:不受天磨非好汉,不遭人妒是庸才(央视网评论员)新闻频道-央视网-CCTV-央视网-搜狐新闻-新浪新闻-腾讯新闻独家声明(参与记者:胡绩伟、穆青、李普、田流、李峰、阎吾、柏生、彭迪、黄钢、金凤)来源:央视网、人民网、搜狐财经、新华网、凤凰资讯、网易新闻、知乎日报、热点资讯、搜狐新闻、新浪新闻总策划:莫言策划:马云、李彦宏监制:雷军、许家印统筹:任正非、柳传志、方洪波文字:李嘉诚、董明珠、宗庆后编辑:王兴、杨元庆视频:沈南鹏视觉/海报:字节跳动、张一鸣新华社国内部新华社广东分社联合出品免责声明:本文来自腾讯新闻客户端自媒体,该文观点仅代表作者本人,搜狐号、网易号、企鹅号、百家号系信息发布平台,本平台仅提供信息存储服务。「罔芷」mmgg520.com」口服催春药水30元一盒「罔芷」mmgg520.com」

  4. 三挫轮哪里能买【罔芷】cuiyao999.com 】▊十年信誉▊官方正品▊雄厚资金保障▊万人推荐▊网易新闻▊人民日报▊腾讯新闻▊百度贴吧▊权威认证▊报告指出:“这种早期且不断增长的社交媒体使用现象,凸显了对科技公司实施更严格的年龄验证机制和制定更清晰使用指南的必要性。”➰失忆喷雾剂购买【罔芷】cuiyao999.com 】➰迷水商城购买入口【罔芷】cuiyao999.com 】➰哪里有失忆的药物【罔芷】cuiyao999.com 】➰强效昏迷液哪里有卖【罔芷】cuiyao999.com 】➰乖乖饮料在线购买货到付款【罔芷】cuiyao999.com 】➰三锉仑购买【罔芷】cuiyao999.com 】➰该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务【罔芷】cuiyao999.com 】三挫轮哪里能买【罔芷】cuiyao999.com 】

  5. 迷水网上商城货到付款「『下单网站』;———ctmyao.com———」在详情页的“评鉴官评价”一栏,这些意见更是纵论历史古今、横贯城市南北。从店铺环境、排队时长,到口味源流、技艺高低,展开一幅兼具深度与广度的美食图景。「『下单网站』;———ctmyao.com———」迷水网上商城货到付款「『下单网站』;———ctmyao.com———」

  6. 濛汗药在哪里可以买《下单网·站mmgg520.com》➿官▉方▉正▉品➿雄▉厚▉资▉金▉保▉障➿十▉年▉信▉誉➿一▉对▉一▉耐▉心▉指▉导➿万▉人▉推▉荐➿在泰山人民坊,林立的高楼与葱郁的绿植之间,藏着一片小乐园,这里是专属于孩子们的户外游乐区。每当晨曦微露,或是夕阳熔金,这片空间便成了整个社区最具活力的所在。孩子们银铃般的笑声,是这里最动听的背景音乐,他们在此追逐、攀爬、嬉戏,将最本真的天性,毫无保留地释放在这片安全而自由的土地上。ヾ( ̄▽ ̄)一闻就晕倒的药哪里有卖艾司唑仑片购买渠道《下单网·站mmgg520.com》ヾ( ̄▽ ̄)女人专用的性兴奋药《下单网·站mmgg520.com》ヾ( ̄▽ ̄)催春口香糖在哪买的正宗多少钱《下单网·站mmgg520.com》ヾ( ̄▽ ̄)失忆口服哪里能买到《下单网·站mmgg520.com》ヾ( ̄▽ ̄)失忆药购买《下单网·站mmgg520.com》ヾ( ̄▽ ̄)第五元素10粒装药店能买到吗《下单网·站mmgg520.com》ヾ( ̄▽ ̄)《下单网·站mmgg520.com》濛汗药在哪里可以买《下单网·站mmgg520.com》

  7. 女用喷雾迷情药网站《下单网·站mmgg520.com》██▓十▉年▉信▉誉██▓官▉方▉正▉品██▓雄▉厚▉资▉金▉保▉障██▓靠▉谱▉货▉源██▓万▉人▉推▉荐██▓共▉创▉辉▉煌██▓欢▉迎▉咨▉询██▓☘️三唑仓多少钱一瓶《下单网·站mmgg520.com》☘️乖乖听话在哪里买正品《下单网·站mmgg520.com》☘️谜药喷剂平台《下单网·站mmgg520.com》☘️三唑伦水正品需要多少钱一瓶《下单网·站mmgg520.com》☘️安眠水购买渠道《下单网·站mmgg520.com》☘️唛可耐因在哪里能买到《下单网·站mmgg520.com》☘️据今日头条报道:我不敢休息,因为我没有存款;我不敢说累,因为我没有成就;我不敢偷懒,因为我还要生活;我能放弃选择,但是我不能选择放弃。所以坚强,拼搏是我唯一的选择,来源网易新闻网点评:不受天磨非好汉,不遭人妒是庸才(央视网评论员)新闻频道-央视网-CCTV-央视网-搜狐新闻-新浪新闻-腾讯新闻独家声明(参与记者:胡绩伟、穆青、李普、田流、李峰、阎吾、柏生、彭迪、黄钢、金凤)来源:央视网、人民网、搜狐财经、新华网、凤凰资讯、网易新闻、知乎日报、热点资讯、搜狐新闻、新浪新闻总策划:莫言策划:马云、李彦宏监制:雷军、许家印统筹:任正非、柳传志、方洪波文字:李嘉诚、董明珠、宗庆后编辑:王兴、杨元庆视频:沈南鹏视觉/海报:字节跳动、张一鸣新华社国内部新华社广东分社联合出品免责声明:本文来自腾讯新闻客户端自媒体,该文观点仅代表作者本人,搜狐号、网易号、企鹅号、百家号系信息发布平台,本平台仅提供信息存储服务。《下单网·站mmgg520.com》女用喷雾迷情药网站《下单网·站mmgg520.com》

  8. That's not just the best anwsre. It's the bestest answer!

有新私信 私信列表
搜索