WordPress的小工具(widget)和插件一样,是帮助WordPress扩展各项功能的有力助手之一。
然而大多数人看到widget时,首先想到的就是“重新排列侧边栏各小区块的工具”,不需要用到任何代码。 这种想法没错,不过这只是widget用法的冰山一角罢了。
1. Widget Logic插件
有时候你可能想让不同的页面上显示不同的widget。Widget Logic插件可以帮你做到。
插件安装完毕后,你所用的widget的选项框里会多出一个Widget Logic的输入框。 你可以在这个输入框里填写各种WordPress条件标签,来决定这个widget会出现在哪些页面上。
上面的图表示,Calendar(日历)小工具只出现在名为“Evil”的页面上。 你可以使用多个条件标签,使widget出现在多个页面。
示例
使当前widget只出现在主页上:is_home()
使当前widget只出现在单篇文章页上:is_single()
使当前widget只出现在页面(page)上:is_page()
使当前widget只出现在存档页面(如分类页、标签页):is_archive()
使当前widget只出现在搜索结果页面上:is_search()
使当前widget出现在主页外的所有页面上:!is_home()
使当前widget出现在“广告”或“联系方式”页面上:is_page(‘advertise’) || is_page(‘contact’)
2. 让博客各版块都支持widget
支持widget的主题向来比较受青睐, 不过用户们已经不满足于主题上仅有的widget区域。 如果能让页面上的所有版块都支持widget,那该是多么美妙的一件事。
关于多区域widget,我们之前发布过一篇简单的教程。
3. Query Posts工具
Query_posts模板标签是一个强大的WordPress函数,你可以在loop中用它来调用日志和页面。
如果你不了解PHP代码但又想利用query_posts标签的功能,可以使用Query Posts工具来调用WordPress日志和页面,并且可以以多种方式显示这些日志。
安装并启用这个小工具后,你会在后台“小工具”菜单里发现一个叫做“Query Posts”的新选项。
Query Posts能做什么:
按照标签、分类、作者、时间、日期或自定义值显示日志
显示用户规定数字的日志
根据发布时间、标题或ID为日志排序(可升序,也可降序)
以全文、摘要或列表方式显示日志
显示WordPress的页面
4. 404模板
很多WordPress主题(甚至包括默认主题Default)的404模板文件都很平淡,不能提供有帮助性的信息。 例如,当你打开使用这些主题的WordPress网站的404页面时,通常只会看到“Error 404 – Not Found”这样没有人情味的字眼。
“最近文章”、“分类目录”以及“存档”等小工具都可以用到404页面上。
首先需要在主题文件里注册一个“404”widget区域。 打开主题的functions.php文件,加入以下代码:
register_sidebar( array( 'name' => '404', 'id' => '404', 'before_widget' => ' ', 'after_widget' => ' ', 'before_title' => ' ', 'after_title' => ' ' ) ); ?>
这样一个widget就注册成功了,然后你需要编辑主题的404.php文件,在文件里加入下面的代码:
就这么简单。 接下来你就可以在“404”小工具里加入任何widget了。之后每当有人访问你的404页面时,就会看到这些widget显示的内容(比如搜索框、最新发表的文章、分类目录列表或是Query Post列表等)。
5. 在两篇文章之间插入广告
你可以通过编辑主题在一定数量文章之间插入widget。 有些人就利用这种方法,在文章之间插入了广告。
和在404模板里添加widget一样,首先仍然是在主题里注册一个widget区域。 打开function.php文件,插入下面的代码:
register_sidebar( array( 'name' => 'index-insert', 'id' => 'index-insert', 'before_widget' => ' ', 'after_widget' => ' ', 'before_title' => ' ', 'after_title' => ' ' ) ); ?>
要在索引页的文章之间插入广告,首先要打开主题的index.php文件,在结尾的“endwhile”附近插入下面的代码:
以上代码会在第二篇文章后插入“indx-insert”工具。你可以根据自己的需要,将“$count==2”中的数字2改成其它数字。
如果你希望在存档页(分类页、标签页等)的各篇文章之间插入广告,那么你还需要把上面的代码放入archive.php、category.php、tag.php文件中。利用Widget Logic插件和条件标签,你还可以在不同页面上显示不同类型的广告。