Widget logic 是最有用的 WordPress 插件之一。通过设置,Widget logic 能够让博客的不同页面显示不同的侧边栏。这个功能非常有用,当你打算在侧边栏显示广告或其它内容时,不必再费事地修改模板。

你可以从 WordPress.org 网站下载这个插件,安装完毕后,需要激活才能正常使用。

实例—在除首页之外的所有页面的侧边栏中显示 “最新日志” 。

步骤一:添加 “最新日志” 选项到侧边栏

登录博客的管理后台,然后点击小工具(widget)菜单,拖拽 “最新日志” 选项到右边的侧边栏,再设置相关标题,显示日志数(例如:5),最后点 “save” 按钮。

步骤二:添加页面显示条件

在所有的小工具底部,有一个选项框,即 “widget logic” 。在这里输入页面显示条件来控制侧边栏的显示。新手如果不懂不要紧,你可以参看下面的说明来设置: WordPress Codex – Conditional Tags

在本例中,我设定的筛选条件是 “除了首页的所有页面 “。因为判断首页的函数为:is_home(),那么除了首页的所有页面的语句应该是:!is_home() 。在 widget logic 选项框中输入这个语句,然后保存即可。

更多高级的条件判断函数

is_single() -》判断是否为单篇日志

is_page() -》判断是否为单个页面

is_page(‘about’) -》判断是否为 about 页面

is_page(’25’) -》判断是否为 id=25 的页面

is_archive() -》判断是否为存档

is_category(‘WordPress’) -》判断是否为别名是 “WordPress“的目录

is_category(’37’) -》判断是否为 id=37 的目录

has_tag (‘WordPress’) -》判断是否存在名为 “WordPress“的标签

你也可以使用逻辑运算符实现更多的控制。|| 为逻辑 “或”,&&为逻辑 “与” 。

实例 1

在 title 为 “fruit” 的页面或名为 “food” 的目录页或 tag 为 “banana” 的页面显示某一小工具。

is_page(‘fruit’) || is_category(‘food’) || has_tag(‘banana’)

实例 2

仅在单篇日志并且不是某一指定目录中显示小工具。你需要提供特定目录的 id 号,而不能用别名或目录名来代替。

is_single() &&!in_category( array(23,30,78))

正如我上面所说的,你可以参看相关文章来学习更复杂的条件判断函数。

Widget logic 测试小技巧

如果我打算利用 widget logic 实现复杂一些的功能,一般我会把小工具拖拽到侧边栏,输入一段纯文本”hey it worked!”,然后看是否所有页面都会显示它。接着添加一些页面显示条件,如果显示成功,说明我的语句没问题。

为什么要做如此麻烦的工作呢?有时候当你试图添加一些动态广告代码或其它比较复杂的代码时,一不小心就会出错。这时候,你会茫然不知那里出错了。先用一段纯文本进行测试,能保证你输入的逻辑判断语句正确。这是我每次都要做的一件工作。