我的生活随笔

修复TpCache插件会缓存评论者信息的问题

项目说明

TpCacheTypecho 一个很古老的缓存插件,服务器配置低的话使用该插件还是可以明显提高访问速度的,但该插件一直有一个问题,就是在生成静态缓存页面的时候会缓存上一个评论者的信息,导致使用体验下降。

解决方案

找到主题文件下 comments.php 删除如下代码

<?php $this->remember('author'); ?> (昵称)
<?php $this->remember('mail'); ?>(邮箱)
<?php $this->remember('url'); ?>(网址)

comments.php 最后加入下面的代码

<script>
<?php if(!$this->user->hasLogin()){ ?>
function getCookie(name){
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
        return unescape(decodeURI(arr[2]));
    else
        return null;
    }
function adduser(){   
    document.getElementById('author').value = getCookie('<?php echo md5($this->request->getUrlPrefix()); ?>__typecho_remember_author');
    document.getElementById('mail').value = getCookie('<?php echo md5($this->request->getUrlPrefix()); ?>__typecho_remember_mail');
    document.getElementById('url').value = getCookie('<?php echo md5($this->request->getUrlPrefix()); ?>__typecho_remember_url');
}
adduser();
<?php } ?>
</script>

至此大功告成,保存刷新并清除缓存,现在就不会缓存评论者所填写的信息了。

来源&鸣谢

至道小博

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »