提高 WordPress 访客评论时的用户体验

Jun 7th, 2008 Add Comment
WordPress 上提高访客评论时的用户体验

简介:
前几天见到某 Blog (忘记名字和网址了) 有一个相当实用的评论功能. 访客留言之后资料输入框会被隐藏起来, 如同登录了一般. 访客可以选择修改相关资料再进行评论. 给予访客很好的用户体验.
今天我将这个功能移植到了自己的主题上, 制作不难, 分享一下吧.

需求:
细心的朋友可能已经注意到了: 当在某个 WordPress 发表评论后再次访问该 Blog, 资料就不需要再次填写, 因为它们都已经在资料输入框里面. 但没评论过的或者清除了 Cookie 之后, 资料输入框将空空如也.
1. 当访客的资料已经存在的情况下, 访客很少关注资料本身, 那些资料输入框就会变成 "碍眼的东西", 我们要想办法将它们隐藏起来. 同时, 我们需要将这位访客的名字显示出来, 否则他/她根本不知道自己的身份.
2. 访客有可能邮箱更换了, 或者就想换个酷点的名字, 此时的他/她肯定想更改一下那些资料. 所以要求有一些措施, 让访客可以重新看到资料输入框.
3. 对于那些从未提供资料的访客, 资料输入框必须让他们看到.

分析:
由需求可以看到, 我们要处理的是两种状态的访客: 有资料的, 无资料的.
对于有资料的, 具有显示资料输入框 (显示昵称) 和 隐藏资料输入框 (显示昵称) 两种状态.
而无资料的访客只有显示资料输入框 (没有昵称) 一种状态.
好, 我们就为有资料的访客配备两个按钮 (更改和取消), 一个用来显示资料输入框, 一个用来隐藏它.

思路:
1. 页面怎么写? 编码前, 我们还应该理一下头绪. 用伪代码吧.

if (有资料的访客) {
    放置访客昵称
    放置更改按钮 (点击后: 隐藏更改按钮, 显示取消按钮, 显示资料输入框)
    放置取消按钮 (点击后: 显示更改按钮, 隐藏取消按钮, 隐藏资料输入框)
}
放置资料输入框
if (有资料的访客) {
    隐藏取消按钮
    隐藏资料输入框
}

2. 怎么获知访客是否评论过? 前面已经谈到, 已评论访客的资料会在显示出来, 也就是说, 代码中已经实现了获取资料的方法. 那我们找找吧...

<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" tabindex="1" />

就是它! $comment_author 是访客的昵称, 当它为空的时候就说明访客资料为空.
3. 有些控件又显示又隐藏的, 怎么弄呢? 我们不需要为此转跳页面, 用 JavaScript 吧. 我们可以写一个方法, 用来设定某些控件的显示与否, 只是一个很简单的方法:

/**
 * 设定控件的显示风格
 * @param id        控件的 ID
 * @param status    控件的显示状态 (显示时为 '', 隐藏时为 'none')
 */
function setStyleDisplay(id, status) {
	document.getElementById(id).style.display = status;
}

编码:
接着干嘛? 大概可以写代码了. 看我的...

<!-- 有资料的访客 -->
<?php if ( $comment_author != "" ) : ?>
	<!--
		转换显示状态用的 JavaScript
		Q1: 为什么这段代码放在这里呢?
		A1: 因为只有当访客有资料时, 它才被用上, 这样可以减少无资料访客下载页面时的开销.
		Q2: 为什么不用外部文件将 JavaScript 放起来? 也许那样维护起来更方便.
		A2: 因为它只在这个地方用到了. 而且加载文件的数量也会影响页面下载速度, 为了这么点字节的代码, 不值得新开一个文件.
	-->
	<script type="text/javascript">function setStyleDisplay(id, status){document.getElementById(id).style.display = status;}</script>
	<div class="form_row small">
		<!-- 访客昵称 (随便欢迎一下) -->
		<?php printf(__('Welcome back <strong>%s</strong>.'), $comment_author) ?>
 
		<!-- 更改按钮 (点击后: 隐藏更改按钮, 显示取消按钮, 显示资料输入框) -->
		<span id="show_author_info"><a href="javascript:setStyleDisplay('author_info','');setStyleDisplay('show_author_info','none');setStyleDisplay('hide_author_info','');"><?php _e('Change &raquo;'); ?></a></span>
 
		<!-- 取消按钮 (点击后: 显示更改按钮, 隐藏取消按钮, 隐藏资料输入框) -->
		<span id="hide_author_info"><a href="javascript:setStyleDisplay('author_info','none');setStyleDisplay('show_author_info','');setStyleDisplay('hide_author_info','none');"><?php _e('Close &raquo;'); ?></a></span>
	</div>
<?php endif; ?>
 
<!-- 资料输入框 -->
<div id="author_info">
	<div class="form_row">
		<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" tabindex="1" />
		<label for="author" class="small"><?php _e('Name'); ?> <?php if ($req) _e('(required)'); ?></label>
	</div>
	<div class="form_row">
		<input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" tabindex="2" />
		<label for="email" class="small"><?php _e('E-Mail (will not be published)');?> <?php if ($req) _e('(required)'); ?></label>
	</div>
	<div class="form_row">
		<input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" tabindex="3" />
		<label for="url" class="small"><?php _e('Website'); ?></label>
	</div>
 
</div>
 
<!-- 有资料的访客 -->
<?php if ( $comment_author != "" ) : ?>
	<!-- 隐藏取消按钮, 隐藏资料输入框 -->
	<script type="text/javascript">setStyleDisplay('hide_author_info','none');setStyleDisplay('author_info','none');</script>
<?php endif; ?>

后记:
其实这个方法有个小缺陷: 这是因为靠 JavaScript 将一些控件隐藏起来而引起. 也就是说, 控件必须在那段简短的 JavaScript 加载完成之后才能被隐藏起来, 而控件的定义却是在那段 JavaScript 之前. 如果你的文章够短, 眼睛够快, 或许你会看到资料输入框转眼即逝的一幕.
是不是很简单? 你现在应该已经知道怎么处理了, 只需要修改一下 comments.php 这个文件.
想看看效果? 在此评论一次, 你就可以看到效果了...

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: 提高 WordPress 访客评论时的用户体验

  1. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @我试试
    真的!

    @Yacca
    为什么用 JS 就不行了?

  2. http://0.gravatar.com/avatar/401b6aa08d03f959bc41a4f33e4fea6c?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    js方法 厄 我现在是能不用就不用js...用起来么我那个theme要抛弃掉了...

  3. http://1.gravatar.com/avatar/d8ef683903ceee8ef15974ec6c796938?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    我试试 :
    真的么?

    真的? :arrow:

  4. http://1.gravatar.com/avatar/b826e7670ef2fb0e843aa40b1e84aeb0?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    真的么? :roll:

  5. http://1.gravatar.com/avatar/7060dfb9a4706f749898fb7b915aa5da?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    mg12:
    @瑞风
    这个应该不是在 K2 看到的, 是另一个主题, 我忘记名字了.
    AJAX 必须是有需要的时候才用的.

    拜托, 我不叫瑞风, 而是锐风!! 瑞风是车啊..

  6. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @瑞风
    这个应该不是在 K2 看到的, 是另一个主题, 我忘记名字了.
    AJAX 必须是有需要的时候才用的.

  7. http://1.gravatar.com/avatar/7060dfb9a4706f749898fb7b915aa5da?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    直到现在才知道, 原来你这个效果是抄 K2 的..

  8. http://1.gravatar.com/avatar/7060dfb9a4706f749898fb7b915aa5da?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    mg12:
    @JAY 和 锐风
    (- -!) 由 Web 服务器处理的话需要翻页, 如果可以那样就不会有人用 AJAX 了...

    你可以让 AJAX 和 Web 端处理 两个并存嘛.. 问题不就解决了?

  9. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @JAY 和 锐风
    (- -!) 由 Web 服务器处理的话需要翻页, 如果可以那样就不会有人用 AJAX 了...

  10. http://1.gravatar.com/avatar/7060dfb9a4706f749898fb7b915aa5da?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    JAY :

    其实这个方法有个小缺陷: 这是因为靠 JavaScript 将一些控件隐藏起来而引起. 也就是说, 控件必须在那段简短的 JavaScript 加载完成之后才能被隐藏起来, 而控件的定义却是在那段 JavaScript 之前. 如果你的文章够短, 眼睛够快, 或许你会看到资料输入框转眼即逝的一幕.

    为啥不把这部分交由服务器处理,而不是用JS来做呢?

    貌似确实是个很不错的 Idea ..

  11. http://1.gravatar.com/avatar/7060dfb9a4706f749898fb7b915aa5da?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    哈, 有些意思啊~

  12. http://1.gravatar.com/avatar/10e5731d1a8aed7f69f55e9f6dbc92d7?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    其实这个方法有个小缺陷: 这是因为靠 JavaScript 将一些控件隐藏起来而引起. 也就是说, 控件必须在那段简短的 JavaScript 加载完成之后才能被隐藏起来, 而控件的定义却是在那段 JavaScript 之前. 如果你的文章够短, 眼睛够快, 或许你会看到资料输入框转眼即逝的一幕.

    为啥不把这部分交由服务器处理,而不是用JS来做呢?

  13. http://1.gravatar.com/avatar/39d4345fbdf03d5d3338a0ef707421b4?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    你好哇!你的博客很漂亮哇!!
    来踩踩喇!
    我是深圳的哟!

  14. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @okyle
    我也不清楚, 貌似你的 Cookie 是失效了.

  15. http://0.gravatar.com/avatar/624c5c6847e142aac4dde60b11c50d7d?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    博主您好,看了您的文章觉得很好,牛人
    可是我有个问题想请教一下
    我的播客也是wordpress,可是为什么不支持cookie啊??
    记不住登录过的访客……
    有没有办法能解决啊??
    我是个小菜鸟,还望博主能指点一下
    http://www.okyle.cn

  16. http://1.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G
  17. http://0.gravatar.com/avatar/6a4105462f231dde10625222b298d759?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    谢谢分享,我了解了

  18. http://1.gravatar.com/avatar/3261c60ce9bc5f231e0ff5a1c7de2d80?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    你的主题太好了,谢谢你的分享,用你的主题好久了。
    你blog的用户体验很好,功能很实用。:eek:

  19. http://0.gravatar.com/avatar/e56314713fcb9190fb44c2d080e70d76?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    不错,很酷! :cool:

  20. http://1.gravatar.com/avatar/554461da8f4c9bec31fc39ad88a70169?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    哈哈 看到这样的效果了,确实很赞!

  21. http://1.gravatar.com/avatar/d7389c325b67c3735cd77518706a7157?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    看上去很好的样子。 :idea:

  22. http://1.gravatar.com/avatar/9bc56001066bd5c78d35eb09d9ad90b0?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    看上去貌似很好用的样子。 :mrgreen:

  23. http://0.gravatar.com/avatar/4d042c311ddf73f34fe169beb58b8551?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    很人性化 试试看

    重点还是博客有好文章才能留住过客!

  24. http://0.gravatar.com/avatar/c70717b364382b59d33ede55f09e242b?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    不错...

  25. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @beethoven
    或许我说得不够具体, 你可以参照一下 Heey 的深化教程, 或者等下个版本的主题发布.

    @Heey
    能用上就好. :)

  26. http://0.gravatar.com/avatar/e1848ffca4c1508966167d746a841bc1?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    不错的功能

    很人性化 试试看

  27. http://0.gravatar.com/avatar/c33001b600f6896ea29962250ebf2a14?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    应该不对,我照上操作,结果syntax error

  28. http://1.gravatar.com/avatar/92c216136a0e47fa0ac39725b07f02bf?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    ...wp的评论屏蔽尖括号,我忘了,重发一下:

    有不明白的同学,我说一个傻瓜教程:
    就是把原文中最后一大段的代码放在comment.php里面的第一个《?php endif; ?》到《?php endif; ?》之间,替换原来的部分。

    对吧,mg12老师。

  29. http://1.gravatar.com/avatar/92c216136a0e47fa0ac39725b07f02bf?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    有不明白的同学,我说一个傻瓜教程:
    就是把原文中最后一大段的代码放在comment.php里面的第一个到之间,替换原来的部分。

    对吧,mg12老师。

  30. http://1.gravatar.com/avatar/92c216136a0e47fa0ac39725b07f02bf?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @空间端点
    学习了,谢谢。

    @mg12
    总算搞明白了,谢谢 :)
    将这个功能集成到下一版本的主题上面吧 :mrgreen:

  31. http://0.gravatar.com/avatar/e3ff7a95ead2ff3ea1cf36b21af5eba7?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    文章更新的真快。。。

  32. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    哦, 原来是 K2...
    Elegant Box 主题的下一个版本会支持这个...

  33. http://0.gravatar.com/avatar/c41b34b1e8d625d80f7ec8240c403b1f?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    体验,又是体验

  34. http://1.gravatar.com/avatar/908e3c4a17e26511c962253f3183ceb0?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    原先一直用K2,以至于以为这个是wordpress自带的功能....- -

  35. http://1.gravatar.com/avatar/7c047ac028c8a8541d4d52a42761e8fa?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    哦 ,YE~~ 结果要在原来的文件上改~~

  36. http://1.gravatar.com/avatar/7c047ac028c8a8541d4d52a42761e8fa?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    我看旷了。。。。 请问下加在哪里,还是在原来的comments.php里面改??

  37. http://0.gravatar.com/avatar/0181a79a939b6fadd690b16913489cbf?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    还是不会改呵呵,你的这个风格怎么弄啊?

  38. http://0.gravatar.com/avatar/20a57cc23443563536733db03655b80e?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    k2是这样的 我记得

  39. http://1.gravatar.com/avatar/bca4d64891bb457b13007c04e77fee19?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G
  40. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @atmo
    :D

    @空间端点
    写得很好哦, 条理很清晰.

    @Black-Xstar
    不会很难的, 或许你被众多文字吓到, 其实你可以只看最后的代码. 那些文字只是写出我的思路而已, 我希望看过这篇日志的人在自己有好的想法时, 知道怎样将它转换成代码.

    @Delacro
    因为你留言过了, 只要你不清 Cookie, 就一直隐藏着.

    @chada
    应该是 FeedSky 的问题. FeedSky 看到也叠加在一起.

    @ChenShiAn
    端午放假, 全民快乐!

  41. http://1.gravatar.com/avatar/d49fd5453de5b190e03b9ac9feedc9d8?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G
  42. http://0.gravatar.com/avatar/a58aebac0f7aef9b2dc40e862b0bc6c9?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    你真有心,端午节快乐!

  43. http://1.gravatar.com/avatar/f8af0d88a4800c1c43f2cecdabf761ce?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    之前用阅微堂的评论插件的时候注意到过那个插件有这个功能。

    P.S: 这篇日志的后半部分在GR里面出现错乱,估计是文中使用的代码作祟。

  44. http://0.gravatar.com/avatar/4c0d5d8768d0c3551aff00d7a1dfc710?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    呀,我的是隐藏地

  45. http://1.gravatar.com/avatar/f97c4ec025d678dec50fa5a846b765b0?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    貌似有点难度,我还是不改了 :sad:

  46. http://1.gravatar.com/avatar/f97c4ec025d678dec50fa5a846b765b0?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    这个功能不错啊!
    有空我也改一下。

  47. http://0.gravatar.com/avatar/6c68e48e7f534ecb9a5f8f047a9715a1?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    很巧,我也刚刚发了一篇日志,说的是如何改造外国人写的wordpress主题以创造更好的中文阅读体验,欢迎来提提意见:http://www.spacetip.net/index.php/2008/06/08/wordpress-theme-optimization/

  48. http://1.gravatar.com/avatar/1084f66754c1a9b97eb7a30b4d72ec32?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G
  49. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @schuen
    很多 Blog 都是用 Cookie 保存这个的.
    WordPress 应该也是.

  50. http://1.gravatar.com/avatar/7c9412d8d9386b950a3ebfe8bfedc053?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    还是要用到cookie啊

Comment pages
1 2 3 4
  1. Loading...