WordPress实用的小插件Widget Logic

WordPress在外观小工具(Widget)中提供了很多的小工具栏,但是由于侧边栏的空间有限,而且摆放多了以后反而会显的很杂乱,另一方面,不同的页面对工具栏的需求也不一样,一刀切显见是不合理的。Widget Logic的作用就是单独控制每一个侧边工具栏在那些页面中显示,这样页面可以更干净,而恰当的侧边栏工具也有助于用户更好的浏览和阅读。

以本博客作为案例,工具栏是这样规划的。

自定义菜单,针对搜索用户的简短引导菜单
Widget Logic:strpos($_SERVER[´HTTP_REFERER´], “google.com”)!=false
释义:只有当用户由google搜索而来的时候才显示

自定义文本,放置的是问答栏目的按钮入口,在首页实现内容架构的穿插
Widget Logic:!is_qa_page()
释义:除了问答页,在其他页都显示

作者稿件排行,显示发稿最多的前几位作者
Widget Logic:is_home()&&current_user_can(´level_2´)
释义:仅在首页显示并且只有作者权限及其以上用户能看到

在线用户头像,促进站内交流并方便登录作者定位自己的文章
Widget Logic:!is_home
释义:除了首页,其他页均显示

群组,buddypress群组列表,显示5个,在博客内容中实现圈子的架构穿插
Widget Logic:is_home||bp_is_group_forum_topic()||bp_is_group_single()||bp_is_user_activity()||bp_is_directory()
释义:在首页、论坛帖子展开页、论坛单独页、论坛活动页、论坛帖子列表页显示群组

最近问答,在博客内容中实现问答内容的穿插
Widget Logic:is_front_page()||is_qa_page()
释义:仅在首页和问答页显示

最近修订,显示最近修改和更新过的文章,属于内容线索中的主动文章挖掘;
Widget Logic:is_home()||is_category()
释义:仅在首页和分类页显示

访客推荐,统计自用户提交的i like this(每篇文章末尾),属于内容线索中的动态文章挖掘;
Widget Logic:is_home()||is_category()
释义:仅在首页和分类页显示

热点文章,统计自每篇文章的浏览量,属于内容线索中的大周期文章挖掘;
Widget Logic:is_home()
释义:仅在首页显示

近期评论,文章评论,评论的动态性很高,考虑放在和内容相关的页面;
Widget Logic:!is_qa_page()
释义:除了问答页,其他页均显示

问答标签,问答中的热门标签;
Widget Logic:is_qa_page()
释义:仅在问答页显示

文章标签,问答中的热门标签;
Widget Logic:is_category()
释义:仅在分类页显示

页面导航,问答中的热门标签;
Widget Logic:is_single()||is_category()
释义:仅在分类页和文章单页中显示

当然除了侧边栏,为了让用户在阅读中有很好的交互,不能完全依赖侧边栏,还需要结合视觉上的其他位置,例如,浏览文章的尾部、页面滑动到页面中间、悬浮不动的侧边栏等等。文中没有涉及到Widget Logic的参数可以参见其插件附带的readme.txt,Wordpress的所有页面参数可以访问Conditional_Tags,至于其他的软件如我这里提到的插件Q@A、Buddypress等,可以在代码中查找_is的语句。当然上插件官方的论坛能找到更完整的说明。如有需要再单独贴出来。

附录:Wordpress支持的所有条件:
comments_open(), is_404(), is_admin(), is_archive(), is_attachment(), is_author(), is_category(), is_comments_popup(), is_date(), is_day(), is_feed(), is_front_page(), is_home(), is_local_attachment(), is_multi_author, is_month(), is_new_day(), is_page(), is_page_template(), is_paged(), is plugin active(), is_plugin_page(), is_post_type_archive(), is_preview(), is_search(), is_single(), is_singular(), is_sticky(), is_tag(), is_tax(), is_taxonomy_hierarchical(), is_time(), is_trackback(), is_year(), in_category(), in_the_loop(), is_active_sidebar(), is_active_widget(), is_blog_installed(), is_rtl(), is_dynamic_sidebar(), is_user_logged_in(), has_excerpt(), has_post_thumbnail(), has_tag(), pings_open(), email exists(), post_type_exists(), taxonomy_exists(), term_exists(), username exists()