解决WP Super Cache插件缓存文件太多没有列表可用的问题

原创 2016-11-18 阅读 137 次 评论 40 条

Boke112导航一直在使用WP Super Cache静态缓存插件,刚开始的时候还好,可以在【内容】选项中直接点击“列出所有已缓存的文件”然后点击删除某一个文章页面的缓存文件,但是到了一定程度后,这个按钮就失效了,变成了“缓存文件太多,没有列表可用”,这个时候真不懂如何删除指定文章页面的缓存文件。经过昨天的折腾,终于把这个问题解决了,今天就跟大家分享一下。

解决WP Super Cache插件缓存文件太多没有列表可用的问题

缓存文件太多,没有列表可用的原因分析:

经检查发现WP Super Cache插件的wp-cache.php文件对于输出缓存列表有一个条件限制,就是如果缓存文件超过500个就会改为输出“缓存文件太多,没有列表可用”,而不是输出缓存链接按钮地址。具体代码如下:

  1. elseif ( $cache_stats[ 'supercache' ][ 'cached' ] > 500 || $cache_stats[ 'supercache' ][ 'expired' ] > 500 || ( $cache_stats[ 'wpcache' ][ 'cached' ] / $divisor ) > 500 || ( $cache_stats[ 'wpcache' ][ 'expired' ] / $divisor) > 500 )

缓存文件太多,没有列表可用的解决办法:

解决WP Super Cache插件缓存文件太多没有列表可用的问题 “缓存文件太多,没有列表可用”的解决办法

登录WordPress后台 > 插件 > 已安装的插件 > 找到“WP Super Cache插件”,点击【编辑】按钮 > 按键盘上的“Ctrl+F”搜索“500”,找到跟上文代码一样的地方,直接把500改为更大的数字(如5000),然后点击【更新文件】按钮即可显示已缓存文件列表。

解决WP Super Cache插件缓存文件太多没有列表可用的问题 显示已缓存文件列表

这个方法的好处就是修改简单,不好的地方就是缓存文件很多的情况下不好找到想要删除的那个缓存文件。其实boke112认为这款插件完全可以增加一个功能,就是可以直接删除指定文章页面的缓存文件,就跟那些CDN加速一样,可以直接输入指定网址然后刷新这个文章页面。

不知道下一次升级是否会考虑到这个方面,不过我已经迫不及待想使用这个功能了,所以只能自己折腾试试,最后终于实现了我想要的功能,也就是可以直接删除指定网址的缓存文件。

直接删除指定网址的缓存文件实现方法:

登录WordPress后台 > 插件 > 已安装的插件 > 找到“WP Super Cache插件”,点击【编辑】按钮 > 按键盘上的“Ctrl+F”搜索:

  1. <table class="wpsc-settings-table"><td valign='top'>

找到之后直接在它的下方添加以下代码并点击【更新文件】按钮保存文件:

  1. <?php if($_GET[ 'tab' ]==='contents'){?>
  2. <form name="wp_cache_on_post_delete" action="" method="post">
  3. <h3 style="cursor: pointer;">输入想要删除的单个缓存地址:</h3>
  4. <input type='text' name='delete_one_post' size='30' value='<?php echo $_REQUEST[ 'delete_one_post' ];?>' />
  5. <div class="submit"><input id="deleteonepost" class="button-primary" type="submit" value="确认地址" /></div>
  6. </form>
  7. <?php $del_one_url =$_REQUEST[ 'delete_one_post' ];$delete_one_url = str_replacearray( 'http://', 'https://'), '', $_REQUEST['delete_one_post'] );echo "<a href='" . wp_nonce_url( add_query_arg( array( 'delete_one_post' => $del_one_url,'page' => 'wpsupercache', 'action' => 'deletewpcache', 'uri' => base64_encode( $delete_one_url ) ) ),'wp-cache' ) . "#listfiles'>先删除wpcache缓存</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href='" . wp_nonce_url( add_query_arg( array( 'page' => 'wpsupercache', 'action' => 'deletesupercache', 'uri' => base64_encode( $delete_one_url ) ) ),'wp-cache' ) . "#listfiles'>后删除supercache缓存</a>";?>
  8. <?php }?>

然后我们进入到WordPress后台 > 设置 > WP Super Cache > 【内容】选项卡里面就可以看到删除指定网址缓存文件的效果图了,具体如下:

解决WP Super Cache插件缓存文件太多没有列表可用的问题 直接删除指定网址的缓存文件功能

删除指定网址缓存文件的操作步骤:

使用方法也很简单,比如我们想删除http://boke112.com/3650.html这个地址的缓存文件,只需要将这个地址直接粘贴到图中所示的文本框中,然后点击【确认地址】按钮,然后分别点击【先删除wpcache缓存】和【后删除supercache缓存】按钮进行删除缓存文件。

WP Super Cache插件直接删除指定网址的缓存文件的操作步骤

警告

一定要严格按照:“粘贴地址 > 确认地址 >先删除wpcache缓存 >后删除supercache缓存”这样的顺序操作才能成功。由于水平有限,所以没有对文本框的内容进行过滤筛选,所以建议想要使用这个功能的博主站长最好是按步骤操作为好。

经过boke112导航的测试,直接删除指定网址的缓存文件功能还是挺好用的,而且测试了几次都能够成功删除。换句话说,boke112导航所使用的WP Super Cache插件已经具备了直接删除指定网址的缓存文件功能。喜欢折腾的博主站长可以试试这个新功能,有更好的代码也欢迎分享告知。

16年11月18日更新:

因为我在测试的时候都是打开缓存列表后才删除指定网址的缓存文件,这个时候都是成功的,但是如果不打开缓存列表就进行操作的话,好像是无效的。至于是不是我也没有把握,因为不打开缓存列表的话,就通过查看源代码的缓存时间判断感觉不一定准确。但是如果打开缓存列表再进行删除,就可以看到缓存文件被删除成功。所以建议大家先把缓存列表中的500改成更大的数字,然后缓存文件多的情况下再增加这个删除指定网址的缓存文件功能可能会更好。

本文地址:http://boke112.com/3651.html
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:aiboke112
版权声明:本文为原创文章,版权归  所有,欢迎分享本文,转载请保留出处!
WordPress免费响应式主题:Nana
CPA教学与引流技巧

发表评论

呲牙憨笑坏笑偷笑色微笑抓狂睡觉酷流汗鼓掌大哭可怜疑问晕惊讶得意尴尬发怒奋斗衰骷髅啤酒吃饭礼物强弱握手OKNO勾引拳头差劲爱你

表情

  1. 地豆Dio
    地豆Dio 【农民】 @回复

    哎,虽然还没收录我的站点,但我还是来冒下泡吧

    • 我爱动感单车网
      我爱动感单车网 【省长】 @回复

      @地豆Dio [晕] 我记得我的博客上线之初,20多天才被百度收录。哎要淡定,慢慢来吧,急不来的!

  2. 第一兼职
    第一兼职 【农民】 @回复

    这款插件我也在用,感谢分享!

  3. 西狂
    西狂 【镇长】 @回复

    这插件我也在用,每次网站更新内容或设置以后要进去更新一下缓存

  4. 分钱榜
    分钱榜 【镇长】 @回复

    每天一学习

  5. 热腾网
    热腾网 【市长】 @回复

    使用CDN后,就没用过本地的缓存插件。

  6. 马超金博客
    马超金博客 【村长】 @回复

    还不太懂这些,呵呵

  7. 金榜台博客
    金榜台博客 【县长】 @回复

    是要经常折腾

  8. themebetter
    themebetter 【农民】 @回复

    折腾的不赖。

  9. 明月登楼
    明月登楼 【总理】 @回复

    自从用了CDN后我已经停用了缓存插件了!

    • boke112导航
      boke112导航【站长】 @回复

      @明月登楼 [抓狂] 目前对CDN比较失望,关键是不稳定,所以还是用缓存插件算了

      • 我爱动感单车网
        我爱动感单车网 【省长】 @回复

        @boke112导航 我用百度云加速有段时间了,反正我个人感觉还行:目前我是这款插件在用,百度云加速也在用!

  10. 韩娱部落
    韩娱部落 【镇长】 @回复

    博主真能够折腾 [呲牙]

  11. 我爱动感单车网
    我爱动感单车网 【省长】 @回复

    这个还是相当不错的,应该会用得着,晚点咱也弄弄好来!

  12. benen005
    benen005 【镇长】 @回复

    确实不错

  13. 管家婆
    管家婆 【镇长】 @回复

    缓存太可恶

  14. 闲鱼
    闲鱼 【村长】 @回复

    这个必须马克,或许能用到,毕竟没那么多缓存

  15. 老叶养生博客
    老叶养生博客 【镇长】 @回复

    不错,先收着,等需要的时候再研究!

  16. 慕斯琴
    慕斯琴 【农民】 @回复

    感谢楼主的分享

  17. 靠谱学生兼职网
    靠谱学生兼职网 【镇长】 @回复

    这个插件我并没有使用,所以,还是万一以后用上了,学习一下先吧。

  18. 龙笑天
    龙笑天 【县长】 @回复

    非常棒!一直在找这个“删除直接页面缓存”的功能!就TM没找到…. [强]

    • boke112导航
      boke112导航【站长】 @回复

      @龙笑天 我这个设置还有个小缺陷,希望大家能够完善它

      • 我爱动感单车网
        我爱动感单车网 【省长】 @回复

        @boke112导航 期待更完善的方法!

      • 龙笑天
        龙笑天 【县长】 @回复

        @boke112导航 能否单独删除缓存的某个css或js?迫切需要啊,经常改动一点css或js~ [可怜]

        • boke112导航
          boke112导航【站长】

          @龙笑天 这个感觉非常有难度,你可以研究看看,感觉这些缓存插件应该增加一些跟CDN加速的那些可以删除或刷新某个页面或文件的功能

  19. BanYuner
    BanYuner 【村长】 @回复

    因为你打开了缓存列表 那么其实就已经有一个列表了 那么你自己写的功能才能使用 但是如果没有这个列表的话,可以尝试吧打开缓存列表的这个action添加到你的代码中去 另外 我个人觉得还是直接通过FTP删除好了 其次设置垃圾回收可以避免这样的问题

    • boke112导航
      boke112导航【站长】 @回复

      @BanYuner 所以代码还有缺陷,不过缓存文件不多的情况可以直接打开缓存列表直接删除,缓存文件多的情况下打开缓存列表再用删除指定网址缓存会比较快,不用找文件。用FTP删除也挺麻烦的。

  20. 橘子书
    橘子书 【县长】 @回复

    一直在思考缓存插件的到底该不该用。

  21. 松松软文发布
    松松软文发布 【农民】 @回复

    感谢博主的分享

  22. 爱时尚
    爱时尚 【市长】 @回复

    博主可以去自己开发插件了

  23. 捌零男人
    捌零男人 【镇长】 @回复

    真能玩啊哈哈

  24. Koolight
    Koolight 【省长】 @回复

    牛,可以加入开发团了!

  25. 静静博客
    静静博客 【农民】 @回复

    搞了个沙发。