对评论分页的 SEO
WordPress 2.7 向我们提供了评论分页的功能, 这个功能可以在一定程度上减少页面加载的时间, 对用户十分友好. 但同时也存在两个问题, 其一是跳转过来的链接钩子如果不在主页面会令用户感到莫名其妙; 其二是对搜索引擎不友好, 因为同时存在多个拥有相同内容, 而永久链接不一样的页面. 如:
http://example.com/my-post-permalink/
http://example.com/my-post-permalink/comment-page-1/
http://example.com/my-post-permalink/comment-page-2/
为主题添加风格切换功能
什么是主题风格切换? 这里有两种含义, 一是在页面上通过触发事件, 保持主题的结构不变, 但外观改变; 二是在后台里通过改变选项, 使得主题结构发生改变或者结构不变的基础上改变外观; 也可能两者兼有.
对于第一种含义, 比较经典的例子是 Wpdesigner7 主题, 它是著名主题设计人小土豆 (Small Potato) 的力作, 可以通过点击页面上的切换按钮实现风格切换.
对于第二种含义, Glued Ideas Subtle 主题是个很好的例子, 就像它的名字一样, 它是一个十分灵活的主题, 可以在后台通过更改选项来控制页面的现实风格. 另外还有本人的 Blocks 主题, 它可以在后台控制页面结构, 实现在两栏和三栏模式之间的切换.
而本人发布的第一个 WordPress 主题 Elegant Box 则属于两者兼具的主题, 可以让访客在页面上切换风格, 也可以在后台选择默认的显示风格和是否允许访客在页面切换风格.
WordPress 防止冒充留言
WordPress 一直以来都有个问题, 如果博主设置评论不需要审核批准就能发表, 那么有可能被人冒名顶替管理员或其他注册用户进行留言. WordPress 是以 email 来识别留言者的, 也就是说, 只要有人知道管理员的邮箱, 那就可以冒充他留言. 虽说管理员可以随后删除这些评论, 但是万一管理员长期不在线或者有人恶意留言那还是挺麻烦的.
这个问题在我刚使用 WordPress 的时候 (WP 2.2) 就发现了, 但这应该不是 bug, 只能认为是设计不周. 后台有提供两种评论审核机制的, 一种是全部都要审核, 另一种是对审核过的不再需要审核. 但这对网站管理和用户体验来说都是极大的挑战, 所以大多数站长都不会打开审核功能, 就这样留下了隐患.
Quick Comments 0.7.0 Release
昨天夜里, Quick Comments 插件被作者更新至 0.7.0 版.
使用该插件, 在提交评论后, 无需重新加载页面, 只更新评论列表. 我已经在以前的文章介绍过了.
本次的变更如下: (翻译自插件作者的博客)
1. 为了提高添加和编辑评论时的处理速度, 现在从服务器端返回的信息只包含一条评论. 但是, 使用 wp.Vicuna 时, 将返回全部评论. (在以前的版本中, 每次都会返回全部评论) 与此相比, 在评论条目很多的文章中添加和编辑评论时, 处理速度应该可以得到提高.
2. 当主题更换为以下主题时, 各种设定选项将自动适应更改. ※对应的主题:default, classic, easyall, k2, wp.vicuna, sandbox, iNove
3. 由 mg12 (也就是我
) 制作的简体中文语言包已经集成到插件中. ※关于插件 Quick Comments 的使用, 这里 (过时的介绍) 有详细的介绍.
更新至 WordPress 2.7 正式版
又逢周末, 终于更新到了 WordPress 2.7.
其实我不想用 beta 版的东西的, 当时是受某组织首领怂恿给装上的 beta1, 装上就后悔了, 仿佛上了贼船又下不来. 只好硬着头皮上, 虽然很多 bug 有点不爽, 但是却帮我提前完成了一些主题的功能.
我更新到 WordPress 2.7 正式版后, 主题插件一切安然, 但貌似某些朋友遇到了一些问题, 这个我会尽快处理的.
AJAX 评论提交插件 Quick Comments
Quick Comments 是一个十分强大的 WordPress 评论插件, 它用到了 jQuery, 使用 AJAX 提交和更新评论, 还可以向评论者的邮箱或 Twitter 发送新评论通知. 选项灵活并且用户体验极佳.
该插件目前支持 classic, default, easyall, k2, sandbox 等多个著名的主题. 如果想要另它支持你的主题, 可能需要修改一下, 如 iNove 可以修改如下:
1. 打开 quick-comments.php, 并找到 149 行. (0.6.2 版)
2. 追加以下代码:
elseif ( preg_match('/^inove/i', $template) ) { $this->options_default['form'] = 'form#commentform'; $this->options_default['list'] = 'ol#thecomments'; $this->options_default['editReturn'] = '#comment-%ID%'; }
评论分页插件 AJAX Comment Pager
插件简介:
为 WordPress 2.7 的评论分页功能增加 AJAX 处理. 不依赖任何 JavaScript 框架.
适用版本:
WordPress 2.7 或以上
插件下载: Download
WordPress 评论分页的一个 bug 与解决办法
该问题已经在 WordPress 2.7 正式版中被修复!
最近我在为 WordPress 2.7 的评论分页制作一个 AJAX 翻页的增强型插件 (基本完成了, 效果可以看这个页面: Plugin Demo). 在测试插件的过程中, 又发现 WordPress 2.7 beta3 的一个 bug. 嵌套回复和评论翻页作为新功能出现多一些 bug 是很正常的, 再说这还是测试版呢. 但这个 bug 很低级, 而且会让留言者感到莫名其妙.
这是个怎样的一个 bug 呢? 举个例子吧...
如: 现在文章有 17 条 comments, 3 条 pings, 每 5 条评论分一页 (为了理解方便, 这里忽略嵌套回复), 显示最新的一页评论, 并且已经将 comments 和 pings 分开处理了.
根据小学 3 年级的除法公式, 17/5 = 3...2. 也就是说文章评论的当前页面是 3, 有 2 条评论. 当某人向文章提交一条新的评论, 那么应该还是在第 3 页, 并且评论显示 2 条.
但很遗憾, 结果不是这样的. WordPress 会为你转跳到第 4 页, 显示 0 条评论. 为什么呢? 因为你还有 3 条 pings. 再用无敌除法公式算一下, (17+3+1)/5 = 4...1. 所以给你转跳到第 4 页. 而由于其中 3 条 pings 不显示, 1 - 3 = -2, 所以该页面显示 0 条评论. 也就是说, WordPress 在提交评论后, 计算页数是以 comments 和 pings 作为评论总数计算的, 如果 comments 和 pings 不分开是完全没问题的; 但分开处理, 并且有 pings 存在的时候, 问题就发生了.
主题技巧: WordPress 2.7 的评论分页
WordPress 主题 iNove
主题简介:
本人第四个 WordPress 主题, 零插件要求, 支持 Widgets. 很幸运地该主题上了 WordPress Theme Directory 的头版.
使用 YO2 的朋友可以直接到后台选用该主题.
相关标签:
双栏式, 固定宽度, 支持 Widget, 右侧边栏, 白色, 通过 XHTML, 通过 CSS, 后台管理
适用版本:
WordPress 2.5 或以上版本
主题演示:
点击这里进入演示页面
主题下载: Download
WordPress 2.7 Trackbacks 的两种处理方法
WordPress 2.7 快发布了, 最近大家都在为新的嵌套回复和留言翻页功能兼容主题. 这东西说难不难, 但是处理起来还是挺烦的, 尤其是要求兼容旧版本 WordPress 的时候. 幸运的是, 无私的小白鼠 Denis, 不但在自己的博客上做了实验, 还为我们贡献了两篇教程, 热烈地为他鼓掌.
本文中, 我将说说 Denis 和我对 Trackbacks 两种不同的处理方法.
WP-RecentComments 升级 1.6 后可能出现的问题
发现部分朋友将 WP-RecentComments 升级到 1.6 版本后, 评论详细页面的返回按钮和日期时间贴在一块了.
这是因为我在插件的 1.6 版中加入了时间日期, 虽然我已经为它定义了样式, 但一些自定义了样式的朋友, 可能会出现上述情况. (新用户绝对不会有影响)
怎么解决呢? 很简单, 但先来了解一下这个插件读取样式的原理吧. 插件自带了样式文件: /wp-recentcomments/css/wp-recentcomments.css, 但为了用户方便管理, 插件会检测主题目录中是否有同名的样式文件存在, 如果有, 会优先处理.
例如: 如果我使用了主题 Blocks, 并存在文件 /blocks/wp-recentcomments.css, 那么被加载并起作用的是 /blocks/wp-recentcomments.css, 而不是 /wp-recentcomments/css/wp-recentcomments.css. 如果 blocks 目录中不存在这个文件, 起作用的就是 /wp-recentcomments/css/wp-recentcomments.css
WordPress 评论的 @ 回复
所谓 @ 回复, 就是在评论者名字前添加 '@' 标记, 不涉及评论内容的, 生成带链接的代码并追加到评论输入框中.
我不喜欢那种结构复杂的, 难以维护的嵌套回复, 而是经常使用 @ 回复. 为此我写了个 JavaScript 脚本, 其中包括了这部分的处理.
为什么将多个图标放在一个图片里?
在制作网页时, 为什么要将多个图标放在一个图片文件里面呢?
经常在网上搜罗资源的朋友可能会发现, 很多网站喜欢将小图标拼在一个图片文件里. 然后在 CSS 中通过 background-position 定位访问图标, 访问量大的网站尤是如此. 为什么呢? 分开管理不是更加灵活吗?
大家都这么做当然有它的优点, 但这同样存在缺点.

