通常要显示链接表、标签云等小工具时,需要先创建sidebar,再将小工具放到sidebar中调用。其实小工具也可以“硬编码”,或者说直接调用。模板标签the_widget()允许在模板的任何位置调用任何WP默认的小工具。

the_widget()使用方法

<?php the_widget($widget, $instance, $args); ?>

参数$widget,表示小工具的PHP名字,如下所示

  • WP_Widget_Archives — Archives
  • WP_Widget_Calendar — Calendar
  • WP_Widget_Categories — Categories
  • WP_Widget_Links — Links
  • WP_Widget_Meta — Meta
  • WP_Widget_Pages — Pages
  • WP_Widget_Recent_Comments — Recent Comments
  • WP_Widget_Recent_Posts — Recent Posts
  • WP_Widget_RSS — RSS
  • WP_Widget_Search — Search (a search from)
  • WP_Widget_Tag_Cloud — Tag Cloud
  • WP_Widget_Text — Text
  • WP_Nav_Menu_Widget

参数$instance

表示每个widget的设置,例如Archives是用dropdown菜单显示还是列表显示

参数$args

widget的sidebar参数,包括before_widget、after_widget、before_title和after_title

举例

Categories widget(分类目录小工具)

默认调用方法(不设置$instance和$args参数)

<?php the_widget('WP_Widget_Calendar'); ?>

设置$instance参数,以dropdown菜单方式显示分类,并显示每个分类下的文章数目

<?php the_widget('WP_Widget_Categories', 'dropdown=1&count=1'); ?>

更多信息请参考官方文档
http://codex.wordpress.org/Function_Reference/the_widget

2条留言

  1. 请问这个函数只能调用wp默认的小工具么?能调用后期插件或主题自带的小工具么?如果不能那有什么别的办法调用么?

    1. 虽然我没试过,但应该可以调用,因为核心widget的注册方式与主题自带的没有任何区别

评论功能已关闭