WordPress 一直以来都有个问题, 如果博主设置评论不需要审核批准就能发表, 那么有可能被人冒名顶替管理员或其他注册用户进行留言. WordPress 是以 email 来识别留言者的, 也就是说, 只要有人知道管理员的邮箱, 那就可以冒充他留言. 虽说管理员可以随后删除这些评论, 但是万一管理员长期不在线或者有人恶意留言那还是挺麻烦的.
这个问题在我刚使用 WordPress 的时候 (WP 2.2) 就发现了, 但这应该不是 bug, 只能认为是设计不周. 后台有提供两种评论审核机制的, 一种是全部都要审核, 另一种是对审核过的不再需要审核. 但这对网站管理和用户体验来说都是极大的挑战, 所以大多数站长都不会打开审核功能, 就这样留下了隐患.
Read more...
WP Trick
Tutorial, WordPress
最近我在为 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 存在的时候, 问题就发生了.
Read more...
WP Trick
Bug, Tutorial, WordPress
难度: ☆
WordPress 2.7 将为我们带来强大的评论功能, 其中包括评论分页. 也就是说, 从此你可以体验原生的评论页面调度了.
Read more...
WP Trick
Theme, Tutorial, WordPress
难度: ★
WordPress 2.7 快发布了, 最近大家都在为新的嵌套回复和留言翻页功能兼容主题. 这东西说难不难, 但是处理起来还是挺烦的, 尤其是要求兼容旧版本 WordPress 的时候. 幸运的是, 无私的小白鼠 Denis, 不但在自己的博客上做了实验, 还为我们贡献了两篇教程, 热烈地为他鼓掌.
本文中, 我将说说 Denis 和我对 Trackbacks 两种不同的处理方法.
Read more...
WP Trick
Theme, Tutorial, WordPress
难度: ★
所谓 @ 回复, 就是在评论者名字前添加 '@' 标记, 不涉及评论内容的, 生成带链接的代码并追加到评论输入框中.
我不喜欢那种结构复杂的, 难以维护的嵌套回复, 而是经常使用 @ 回复. 为此我写了个 JavaScript 脚本, 其中包括了这部分的处理.
Read more...
WP Trick
JavaScript, Theme, Tutorial, WordPress
在制作网页时, 为什么要将多个图标放在一个图片文件里面呢?
经常在网上搜罗资源的朋友可能会发现, 很多网站喜欢将小图标拼在一个图片文件里. 然后在 CSS 中通过 background-position 定位访问图标, 访问量大的网站尤是如此. 为什么呢? 分开管理不是更加灵活吗?
大家都这么做当然有它的优点, 但这同样存在缺点.
Read more...
CSS, WP Trick
CSS, Icon, Tutorial, Web
难度: ★★★☆
滚动菜单, 顾名思义是以滚动的方式显示和隐藏菜单的. 其实跟淡入淡出菜单和滚动菜单的原理是一样的, 前者是在触发事件的时候改变菜单的透明度, 而后者则是改变菜单的高度. 那为什么后者的处理难度会比前者高呢? 这正因为菜单高度的处理比透明度有更高的技巧要求. 下面我们就讨论一下该如何处理, 并难在什么地方.
这里只列出与淡入淡出菜单实现有所不同的地方, 对于以前说过的问题不再重复. 如有疑惑请先查看之前几篇相关的文章, 也欢迎在此留言交流.
这是效果演示
Read more...
WP Trick
JavaScript, Theme, Tutorial, WordPress
难度: ★★★
有前两篇关于导航菜单的基础, 这个淡入淡出效果会显得比较简单. 菜单我们已经做出来了, 下拉效果我们已经出来了, 说白了就是要在这些基础上加一个渐变效果而已, 或呈现, 或褪去.
本文只对渐变处理作展开讨论, 其他请参考前两篇关于导航菜单的文章, 文章链接你可以在本文相关话题中找到.
这是效果演示
Read more...
WP Trick
JavaScript, Theme, Tutorial, WordPress
难度: ★★☆
前一篇已经讨论过如何创建 WordPress 导航菜单, 这回我们继续导航菜单的话题, 创建一个二级导航菜单. 如果你还不知道如何创建一个简单的导航菜单, 建议你先看看上一篇, 相关内容本文不再重复.
原本计划分两种方法来讨论这个二级导航菜单, 即 CSS 方式和 JavaScript 方式. 但由于我不知道 CSS 的该从何说起, IE 处理相当麻烦, 并且它与后面的话题也没有太多承接关系. 所以决定撤掉那个话题, 现在只讨论以 JavaScript 实现二级导航菜单. 你很快就能发现写 JavaScript 会比较快乐的.
何为二级导航菜单?
二级导航菜单就是类似桌面软件的菜单栏, 当鼠标移动到某一菜单时, 就会显示该菜单的菜单项, 也就是可以看到二级分类. 目前在 Web 上的应用已十分广泛, 今天我刚注册了一个网易的 yeah.net 邮箱, 里面有三级菜单呢. (请不要贪婪, 三级已经是应用极限了)
这是效果演示
Read more...
WP Trick
JavaScript, Theme, Tutorial, WordPress
难度: ★
导航菜单早已 "深入民心", 在博客上的应用日益重要且多样. 从本文开始, 我将开展几个关于 WordPress 导航菜单的话题, 讨论如何在 WordPress 上使用和加强导航菜单, 话题间有一定的承接关系, 难度也会逐步增加.
WordPress 上的导航菜单一般有两种, 页面导航菜单和分类导航菜单.
可曾记得? WordPress 是可以撰写独立页面的, 页面导航菜单就是以首页和各个独立页面组成的菜单. 而分类导航菜单则是以首页和各个分类组成的菜单.
这是效果演示
Read more...
WP Trick
Theme, Tutorial, WordPress
难度: ★★
作为主题的制作者, 除了实现功能, 展示界面, 还有责任使主题灵活多变, 以满足更多人不同的需求.
可能一些朋友曾为选用双栏主题 (单侧边栏) 还是三栏主题 (双侧边栏) 而烦恼过. 下面我们以 Classic 主题为例, 谈谈如何在主题中方便地切换单侧边栏和双侧边栏. 最后我会提供修改后的主题.
在阅读本教程之前, 你必须对下列主题技巧有一定的认识.
1. 知道如何为主题添加管理选项
2. 知道如何让主题支持 Widget
Read more...
WP Trick
Theme, Tutorial, WordPress
难度: ★
过去一年, 我先后发布了 Elegant Box 和 Block 两个 WordPress 主题. 对于主题的制作虽不如老手, 但在完善的过程中对主题灵活性的要求却是体会颇深.
用户对界面的要求是各不相同的, 一个主题做下来就一个样是不能满足用户的. 他们会改你的主题 (烧刻的 Feed 地址也得改上去吧), 并向你提出各种问题直到你应接不暇.
对用户来说, 页面上的一些东西可能会常变的 (比如: 公告). 作为主题制作者应该考虑到这样的一些问题并灵活处理, 以免用户频繁的修改代码.
为此, 我们可以为主题添加一些管理选项, 用户可以在后台通过修改这些选项的值令主题有不一样的表现.
为主题添加一些管理选项并不是难事, 你只要回写完第一个选项处理, 其他选项的处理就迎刃而解了.
我们这次用 WordPress 自带的主题 classic 作为例子, 创建一个首页公告栏的管理选项.
本教程需要一定的 HTML 基础, 并对 PHP 有初步了解.
好, 我们这就说说怎么处理.
Read more...
WP Trick
Theme, Tutorial, WordPress
难度: ☆
昨天跟俩同学吹水了一天, 心情不错. 临睡前有行善的冲动, 帮网友小改了一下主题. 任务比较简单, 只是为一个三栏主题添加对 Widget 的支持而已.
事后有网友认为这样的做法欠妥, 要么鼓励收费, 要么授人以渔. 我想想也有道理, 打算以后少干这些活, 但多聊聊这些事. 就先从这次简单的案例开始说吧.
Read more...
WP Trick
Theme, Tutorial, WordPress
经过前面几回, 我们已经将想法作成了一个简单的插件, 先回顾一下吧:
将 Blogroll 分为两栏 (1)
将 Blogroll 分为两栏 (2)
将 Blogroll 分为两栏 (3)
插件的基本功能都实现了, 但它的不足也是显而易见的, 当链接超过 30 个的时候, widget 还是会变得很长. 可能你会想到限制显示数量并采用随机显示, 用公平的方式显示少量链接以达到界面的美观. 但很遗憾, 当你想找到某人的链接时, 可能刷新好几次页面都无法将你想要的显示出来. 所以我们还需要一个功能, 将所有链接都显示出来, 而我们显示所有时不需要重载页面. 翻页? 没必要吧. 我相信你不会有 100 个链接, 假如你有, 你一定会将他们进行分类的.
Read more...
WP Trick
JavaScript, PHP, Plugin, Tutorial, WordPress
前言:
前两回中, 对界面布局做了分析, 也为编码做过了一些准备. 可以参考以下文章:
将 Blogroll 分为两栏 (1)
将 Blogroll 分为两栏 (2)
这一回, 要敲些代码了, 最后将会做成一个简单的插件. 第二回中说过, 它应该是可以分多列的, 在这先给插件起个名字, WP-MulticolLinks (WordPress Mulitiple Column Links).
题外话:
为什么大部分插件的 WP 后用中横线而不用下横线呢?
我猜测这与 WordPress Plugins 对 readme.txt 文档的处理方法有关. 起码对我来说是这样.
Read more...
WP Trick
PHP, Plugin, Tutorial, WordPress