WordPress记住评论用户信息的js版本,直接操作cookie无视缓存

这两天一直在折腾博客的评论功能,原因是开启了百度云加速的html缓存,导致原有的记住评论者信息的功能失效了,每次刷新文章页面,用户信息都会清空。

于是就折腾了前几天的《博客文章重新启用评论,附一键填写评论中用户信息代码生成工具》一文,弄得好像是那么一回事。但是,还是没有从根本上解决问题啊!

昨天,接到博友黄启福的建议:通过js来操作cookies,让浏览器记住用户信息即可。看了下W3chool资料,感觉是可行的,于是上午开始折腾js代码,并成功搞定了这个功能!再次感谢黄启福朋友的建议!

下面分享这个js代码,补充WordPress在缓存处理方面的不足:

先前置说明一下,此js主要用于解决WordPress在百度云加速等CDN缓存开启下无法保存用户信息的问题,省的某些人不仔细看内容就别说啥“WordPress是可以记住个人信息的笑话”!

一、ZBlog移植

①、添加JS代码

之前发现ZBlog的记住用户信息是用js实现的,就从中扒了出来,修改了下,以兼容WordPress。代码如下,将以下代码加入到WordPress的 js 当中即可,比如加入到 comments-ajax.js的最后:

Ps:如果没有做ajax评论,就没有comments-ajax.js,这时你可以将以上代码保存为 saveinfo.js ,然后引入到前台即可。

②、修改comments.php

编辑主题的comments.php文件,找到提交留言的按钮代码,在合适的位置添加勾选框:

最后的代码大致如下(供参考):

现在,博客可以放心的开启前台整站CDN加速了,用户只要认真提交过一次评论,那么下次再来访问任意页面,将会自动填写评论用户信息。

下面隐藏内容是张戈之前自己写的js代码,使用感觉没有ZBlog的完善感兴趣的可以参考看看  展开

二、自动保存

不提供是否保存信息的选项,提交评论的时候,会自动保存用户信息到本地cookies当中,下次再访问这个页面的时候,将自动填写用户信息,整个过程用户无需干涉。

Ps:无勾选版本,主要是方便一些不太会改代码的站长,只要在页面引入这个js就行了,无需过多修改。

①、将如下代码保存为saveinfo.js,并上传到主题目录。

②、然后,在主题head部分载入这个js即可:

三、自行选择

功能区别:在上述功能的基础上,新增一个勾选框,让用户选择是否保存信息。

设计初衷:因为用户可能用的是他人电脑,并不想让邮箱、网址等信息保留在该电脑上。所以,这是注重用户体验的一个版本,推荐使用!

①、同样的,将如下代码保存为saveinfo.js,并上传到主题目录:

②、然后,在主题head部分载入这个js:

③、修改comments.php

编辑主题的comments.php文件,找到提交留言的按钮代码,在合适的位置添加勾选框:

最后的代码大致如下(供参考):

把网站的所有缓存和CDN缓存都清空后,访问留言板可以看到多了一个勾选框:

WordPress记住评论用户信息的js版本,直接操作cookie无视缓存

现在,博客可以放心的开启前台整站CDN加速了,用户只要认真提交过一次评论,那么下次再来访问任意页面,将会自动填写评论用户信息。

四、注意事项

①、使用前请务必正确修改js代码中的domian值,否则无法操作cookies;

②、如果你了解js,可以将js代码与网站的其他js合并,减少页面的js请求,比如与comments-ajax.js合并;

③、已记住的网站,如需修改更新用户信息,只需输入新的信息,重新提交一次即可刷新cookie;

④、如果评论框中存在重置(id为reset)的按钮,那么只要点击重置就能清除已保存的用户信息;

⑤、该功能只在用户电脑本地生效,不会带来任何安全隐私及隐患;

⑥、以上js只对WordPress生效,其他建站程序可以通过修改代码中的ID名称即可生效。

非WordPress建站程序的朋友,如果有需求可以留言,张戈可提供无偿修改服务!完毕!

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:46   其中:访客  35   博主  11

  1. 瑾瑜 4 来自天朝的朋友 火狐浏览器5.0 Windows 8.1 江苏省苏州市 百度网讯科技电信节点

    好细心啊,用别人电脑的情况都考虑到了……

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广西南宁市 百度网讯科技电信节点

      我觉得我应该做产品经理的 :lol: 注重用户体验。

      • 瑾瑜 4 来自天朝的朋友 火狐浏览器5.0 Windows 8.1 江苏省南京市 奇虎360科技电信CDN节点

        同感……

  2. 龙三公子 6 来自天朝的朋友 谷歌浏览器 Windows XP 江苏省苏州市 百度网讯科技电信节点

    我记得zblog自带的评论本身就有这个功能!

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广西南宁市 百度网讯科技电信节点

      我也是后来才发现zblog是有的,否则也不用自己去写js了。
      但是,wordpress,我这是首家发出。

  3. 屠龙 3 来自天朝的朋友 谷歌浏览器 Windows XP 广西南宁市 百度网讯科技电信节点

    确实挺不错的。

  4. PHP二次开发 6 来自天朝的朋友 火狐浏览器 Windows 8 山东省青岛市 奇虎360科技联通CDN节点

    博主真是大好人呀!

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广西贵港市 奇虎360科技电信CDN节点

      其实也是自己有需求。。

  5. 飞哥 4 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市 电信

    签到成功!签到时间:上午12:51:06,每日签到,生活更精彩哦~

  6. 飞哥 4 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市 电信

    好好开发一个QQ登陆的插件,才是有用的啊。老大!

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广西贵港市 奇虎360科技电信CDN节点

      QQ登陆已经有付费插件了。

  7. Nhzy资讯君 2 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市 电信

    没研究过这个

  8. 夏日博客 5 来自天朝的朋友 谷歌浏览器 Windows XP 广东省佛山市 百度网讯科技电信节点

    对于用户的体验很好。如果不能记住,每次输入有点麻烦。

  9. 网上支付 2 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市 电信

    代码不是用来看的,而是用来拷贝的。。

    • lynx 1 来自天朝的朋友 火狐浏览器 Windows XP 江苏省南京市 奇虎360科技电信CDN节点

      有道理

  10. 梦轩丽人 6 来自天朝的朋友 火狐浏览器 Windows XP 广西贵港市 奇虎360科技电信CDN节点

    这个功能不错,要不然没评论一次就输入一次,也挺烦的

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广西贵港市 奇虎360科技电信CDN节点

      如果没开CDN缓存,也就不存在这个困扰了。开了之后,WordPress的记住功能就失效了,我这算是弥补了WordPress在缓存处理方面的不足。

  11. 热腾网 4 来自天朝的朋友 谷歌浏览器 Windows 8.1 山西省太原市 奇虎360科技联通CDN节点

    这个在我那里没能实现,不知道是哪里操作不对。在同一个页面可以记录,到别的页面就不行了。

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广西贵港市 奇虎360科技电信CDN节点

      主要是这一句代码:document.cookie=c_info+ “=” +escape(value)+”;path=/;domain=.zhangge.net”+
      ((typeof expiredays==”undefined”) ? “” : “; expires=”+exdate.toGMTString());

      path=/ 表示所有页面生效,domain=.zhangge.net 表示在所有子域名生效。

      注意域名前面有个 .

  12. 大肥羊 4 来自天朝的朋友 火狐浏览器 Windows 7 广东省广州市 电信

    这功能不错。

  13. kaikai 0 来自天朝的朋友 谷歌浏览器 Windows 7 江苏省南京市 移动

    :razz: 表情能显示吗

  14. 三维一度 2 来自天朝的朋友 谷歌浏览器 Windows XP 上海市松江区 电信

    博主在吗

  15. SEO顾问 4 来自天朝的朋友 谷歌浏览器 Windows 7 辽宁省沈阳市 鹏博士长城宽带(廊坊联通出口)

    张兄,你这个留言板功能很不错,越发喜欢了,能否分享一个?

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 电信

      我也是扒了嗨CC的代码,你自己去看看吧:评论DIY教程

  16. 用闲人 1 来自天朝的朋友 谷歌浏览器 Windows Server 2003 广东省湛江市 电信

    来个友链

  17. 有用 1 来自天朝的朋友 谷歌浏览器 Windows 7 海南省文昌市 电信

    这个不错!!

  18. 潇洒沉默 1 来自天朝的朋友 火狐浏览器 Windows XP 北京市 联通

    好多技术值得我们菜鸟学习

  19. helsinglee 2 来自天朝的朋友 谷歌浏览器 Windows 10 贵州省贵阳市 联通

    阿里云感觉没效果…看了你的这个,才发现我的也无法保存用户信息… :!:

  20. ddddddd 1 来自天朝的朋友 谷歌浏览器 Windows 7 福建省漳州市 联通

    学习,谢谢

  21. 后知后觉 3 来自天朝的朋友 谷歌浏览器 Windows 10 浙江省杭州市 电信

    其他一切正常,就是有个array ( ‘code’ => 0, ‘message’ => ”, )的提示怎么办

  22. 堕落的鱼 1 来自天朝的朋友 谷歌浏览器 Windows 10 浙江省 电信

    学习了,谢谢

  23. 狂族晨曦 5 来自天朝的朋友 谷歌浏览器 Windows 7 四川省成都市 电信

    百度与加速CDN开启之后,我自己登录了第一个看一篇自己的文章,登录后的“编辑“、”管理站点”等判断登录后显示的信息竟然会被CDN完整的缓存下来,研究了一天不知道怎么解决,只是对WP Super Cache的领悟更深了,再加上张哥的分享,终于知道该怎么做了,万分感谢!

  24. 憧憬Licoy 4 来自天朝的朋友 谷歌浏览器 Windows 10 四川省 电信

    这个在我的博客添加了反而现在每评论一次就要输入一次

  25. 憧憬Licoy 4 来自天朝的朋友 谷歌浏览器 Windows 10 四川省 电信

    可以了,之前使用的是你的第三种方法,不可以用

  26. 软件海 3 来自天朝的朋友 谷歌浏览器 Windows 7 陕西省西安市 电信

    从memcached缓存这篇文章过来的,我的网站还没有开启html缓存,只是缓存了数据库。我的网站设置的是必须登录才能评论,如果开启html缓存,使用你写的这个JS文件,是否能让用户登录一次之后在本地保存登录信息,下次访问网站的时候自动登录?
    另外,感谢张戈分享的很多干货。

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 山西省太原市 电信

      这个js只能记录留言过的用户信息,并不能自动登录。

  27. 时光在路上 2 这家伙可能用了美佬的代理 谷歌浏览器 Windows 7 美国

    我有两个问题想向您请教:1. 为什么label 标签中用 for=”comment_mail_notify” 呢?是不是应该改成 for=”saveme” 啊?
    2. 我用了前面您说的修改zblog 的代码,不过发现还是不能记住用户评论信息。您在回复网友评论时说域名前面需要加个 点,是不是这个原因呢?我用的是修改自zblog的代码。

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 广东省深圳市 移动

      1、这个确实我写错了。应该是for saveme
      2、如果网站用的www域名,那么需要加一个点,表示所有。

  28. 七支剑 4 来自天朝的朋友 火狐浏览器 Windows 7 江苏省苏州市 联通

    有个错误不知道怎么解决

    这行会提示
    Uncaught ReferenceError: jQuery is not defined
    不知道是否会有影响

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

      已更新代码。$(document).ready(function(){

      • 七支剑 4 来自天朝的朋友 谷歌浏览器 Windows 7 江苏省苏州市 电信

        好快

      • 缓存问题 0 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市 电信

        安装了缓存插件WP Super Cache后,对留过言的用户都不缓存了,有没办法依然对留过言的用户缓存,但是又记住用户信息??

        • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 广东省深圳市 移动

          参照本文思路

  29. 测试 0 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市 电信

    测试评论

  30. 我爱资源 1 来自天朝的朋友 谷歌浏览器 Windows 10 四川省成都市 电信

    很实用。

  31. 技术宅 4 来自天朝的朋友 火狐浏览器 Windows 10 江苏省南京市 电信

    签到成功!签到时间:上午9:01:55,每日签到,生活更精彩哦~

加载中,请稍候...