看到苦逼男留言有说站点评论每次都需要手动再输入一次信息,于是自己测试了一番,果然如此,之前一直没有注意过这些,这结果对于用户体验非常不好,老用户评论时需要手动至少输入一个字,显示出下拉历史框后,再进行操作,属于比较繁琐了。多说等插件由于实现用户绑定制度, 倒是很好的解决了这个问题。本站目前用的是默认评论系统,基本能实现站点和用户的日常需求了,所以也没急着换多说。另一方面网上也没有过多的资料对多说具体带来的好处也做分析说明,所以还是不折腾了,继续沿用吧。
每一个访问者评论后,都会生成cookie存储在$_COOKIE[“comment_author_” . COOKIEHASH]中,只要cookie没有被手动清除,我们在评论处都可以直接调用其的数据来显示评论者名称。
$comment_author = $_COOKIE["comment_author_" . COOKIEHASH];
然后将$comment_author的值显示在评论者的输入框中,这个框就是个简单的input type=text,于是有了下面的代码,分别对应评论者,评论者邮箱,评论者网站:
<input class="author" type="text" value="<?php if ( !empty($comment_author) ) { echo esc_attr($comment_author); } else { echo 'Enter your name...'; } ?>" onclick="this.value='';" name="author" id="author" size="22" tabindex="1"/> <input class="email" type="text" value="<?php if ( !empty($comment_author_email) ) { echo esc_attr($comment_author_email); } else { echo 'Enter your Email...'; } ?>" onclick="this.value='';" name="email" id="email" size="22" tabindex="2"/> <input class="url" type="text" value="<?php if (!empty($comment_author_url)) { echo esc_attr($comment_author_url); } else { echo ('Enter your Website...'); } ?>" onclick="this.value='';" name="url" id="url" size="22" tabindex="3"/>
esc_attr()这个函数是转码用的,具体的可以去google查询用法。
打开主题下的comments.php,找到相应的位置,替换成以上代码即可。
另外我索性顺手改了一下右上角导航条的右边,添加了显示“OOXX,欢迎归来!”,也是直接调用了该cookie的值。在你想要显示的地方插入以下代码即可:
if($_COOKIE["comment_author_" . COOKIEHASH]!="") echo $_COOKIE["comment_author_" . COOKIEHASH] . "欢迎归来!"; else echo "您好,欢迎光临!"; ?>
我也看到过好几位好友的评论都和我之前一样,没有保存评论者信息。如果你想改进这方面的用户体验的话,请参照本文。
这个确实很实用,收藏了先
这个功能不错,先收藏,我也不知道默认的是不是也保存有信息的,我自己用的登录过的就有保存了.
这种都需要客人提的,主人压根不知道。
用多说吧。
现在的用着 舒服多了 主要是因为都太懒了 嘿嘿
有利于博客互访,否则每次都输入太麻烦了
所以做了,不知道原来你们每次评论都得重输,看来之前评论的同志都是好同志啊!
我来了
嗯 还是保存评论信息比较友好啊
恩,现在应该是可以了。之前自己没注意过,我一直是用户名登陆的。