WordPress博客开发者文档里的函数参考Codex,一直是我的良师益友。我废了九牛二虎之力找到了the_widget()函数。它不仅能实现WP_Widget_Calendar()的调用,还能实现其他Archives、Categories、Links、Meta、Pages、Recent Comments、Recent Posts、RSS、Search、Tag Cloud、Text的调用,不过这些调用出来的都是wordpress系统默认样式,需要自己对样式进行修改。
the_widget()函数调用方式
<?php the_widget($widget, $instance, $args); ?>
$widget参数
- 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
$instance参数:是$widget删除指定的函数所支持的参数。
$args参数: before_widget、after_widget为定义widget前后内容默认值是<div class=”widget {widget’s classname}”></div>
,而widget则在上述DIV标签里;before_title、after_title定义标题的前后内容,默认为:<h2 class=”widgettitle”></h2>
,标题将在H2标签里。
WP_Widget_Archives函数
使用说明:显示月度归档,$instance参数可以指定标题(title,默认值是__(‘Archives’))、是否统计当月日志数(count,默认值是0)、显示方式(dropdown,值为1则表示下拉菜单方式显示,值为0则表示普通方式显示)。$args的before_widget默认样式为widget_archive。函数调用方式:
<?php the_widget('WP_Widget_Archives', $instance, $args); ?>
使用举例:例子中的第一个,会显示所有月度归档,标题为默认。第二个则让你的月度归档指定标题“月度归档”、显示当月日志统计、显示方式是下拉菜单方式。第三个则是让标题“月度归档”显示为H1标题。这里并没有提供显示月度归档的数量,如果想修改,请参考我的日志《WordPress 应用:自定义日志归档的显示数量》,或许对你有帮助。
<?php the_widget('WP_Widget_Archives'); ?>
<?php the_widget('WP_Widget_Archives', 'title=月度归档&count=1&dropdown=1'); ?>
<?php the_widget('WP_Widget_Archives','title=月度归档','before_title=<h1>&after_title=</h1>'); ?>
WP_Widget_Calendar函数
使用说明:这个是日历归档的widget。函数参数稀少,只有一个自定义标题(title)参数,默认为空。调用方式和上面类似,你可以使用title=标题名的方式调用。$args的before_widget默认样式为widget_calendar。函数调用方式:
<?php the_widget('WP_Widget_Calendar', $instance, $args); ?>
使用举例:例子中的第一个,会显示当前月份的日历归档,并没有标题。而第二个例子则定义了标题名,样式为widgettitle控制。第三个是在第二个的基础上,让“日历归档”变为H1。
<?php the_widget('WP_Widget_Calendar'); ?>
<?php the_widget('WP_Widget_Calendar', 'title=日历归档'); ?>
<?php the_widget('WP_Widget_Calendar', 'title=日历归档' , 'before_title=<h1>&after_title=</h1>'); ?>
WP_Widget_Categories函数
使用说明:这个是显示分类的widget,参数和WP_Widget_Archives类似。$instance参数可以指定标题(title,默认值是__(‘Categories’))、是否统计当月日志数(count,默认值是0)、自分类是否嵌套(hierarchical,1为嵌套,0为不嵌套,默认不嵌套)、显示方式(dropdown,值为1则表示下拉菜单方式显示,值为0则表示普通方式显示)。$args的before_widget默认样式为widget_categories。函数调用方式:
<?php the_widget('WP_Widget_Categories', $instance, $args); ?>
使用举例:例子中的第一个,没啥特点,显示博客分类,标题是“分类目录”;例句二,显示博客分类,而标题是“博客分类”;第三句在第二句的基础上,继续深化,显示分类日志统计(count=1)、使用下拉菜单方式显示(dropdown=1)、自分类嵌套显示(hierarchical=1)、把分类标题“博客分类”,定义为H1。
<?php the_widget('WP_Widget_Categories'); ?>
<?php the_widget('WP_Widget_Categories','title=博客分类'); ?>
<?php the_widget('WP_Widget_Categories','title=博客分类&count=1&dropdown=1&hierarchical=1','before_title=<h1>&after_title=</h1>'); ?>
WP_Widget_Links函数
使用说明:调用友情链接函数。$instance参数比较多,但相对简单,基本是友情链接的各项内容。title指定链接显示(不会用,请高手指教),category显示分类,description是否显示描述(1为显示,0为不显示,默认为不显示),rating是否显示评分(1为显示,0为不显示,默认不显示),images是否显示友情链接图片(1为显示,0为不显示,默认显示),name图片Alt标记(1为显示,0为不显示,默认不显示)。widget的样式表控制为widget_links。函数调用方式:
<?php the_widget('WP_Widget_Links', $instance, $args); ?>
使用举例:例子中的第一个,显示所有友情链接,标题为“书签(Bookmarks)”;第二句,指定显示友情链接分类ID=2的链接,显示描述、博主评分、图片Alt描述;第三句是在第二句的基础上,指定了标题“书签(Bookmarks)”为H1。
<?php the_widget('WP_Widget_Links'); ?>
<?php the_widget('WP_Widget_Links' , 'description=1&category=2&rating=1&name=1'); ?>
<?php the_widget('WP_Widget_Links' ,'description=1&category=2&rating=1&name=1,''before_title=<h1>&after_title=</h1>'); ?>
WP_Widget_Meta函数
使用说明:调用Meta功能管理函数,如登录/退出、Feed订阅、WordPress链接。仅有一个title参数,用于设定此Widget的标题,默认是Meta(功能)。widget的样式表控制为widget_meta。函数调用方式:
<?php the_widget('WP_Widget_Meta', $instance, $args); ?>
使用举例:例子中的第一个,显示所有Meta功能,标题为“功能(Meta)”;第二句,指定Meta的标题“博客管理”;第三句是在第二句的基础上,把标题“博客管理”设置为H2,红色。
<?php the_widget('WP_Widget_Meta'); ?>
<?php the_widget('WP_Widget_Meta','title=博客管理'); ?>
<?php the_widget('WP_Widget_Meta','title=博客管理','before_title=<h2 style="color:#F00;">&after_title=</h2>'); ?>
WP_Widget_Pages函数
使用说明:这是调用自定义页面调用函数。$title参数用于指定此widget标题,默认为Pages(页面);$sortby用于指定排序方式,默认为menu_order,可使用wp_list_pages()函数支持的任意排序;exclude用于指定不需要显示的ID。函数调用方式:
<?php the_widget('WP_Widget_Pages', $instance, $args); ?>
使用举例:例子中的第一个,将显示所有自定义页面,且标题被我定义为H2,红色显示;第二个例子,定义标题为博主推荐,排序方式为id,并且ID为2的页面不予显示,多个id用半角逗号隔开,比如我想隐藏ID为2、699的,我则可以这么设置exclude=2,699。sortby除了支持ID外,还支持post_title、menu_order、post_date、post_modified、post_author、post_name,这里不多作介绍。
<?php the_widget(‘WP_Widget_Pages’,”,’before_title=<h2 style=”color:#F00;”>&after_title=</h2>’); ?>
<?php the_widget('WP_Widget_Pages','title=博主推荐&exclude=2&sortby=id'); ?>
WP_Widget_Recent_Comments函数
使用说明:调用最新评论的函数。可以自定义widget的标题$title,默认为Recent Comments(最近评论);自定义显示数量$number,最大值15,默认5。函数调用方式:
<?php the_widget('WP_Widget_Recent_Comments', $instance, $args); ?>
使用举例:例句一,把此widget的标题“最近评论”定义为H2,红色显示;例句二,定义widget的标题为“博友留言”,并显示15条评论。
<?php the_widget('WP_Widget_Recent_Comments','','before_title=<h2 style="color:#F00;">&after_title=</h2>'); ?>
<?php the_widget('WP_Widget_Recent_Comments','title=博友留言&number=15'); ?>
WP_Widget_Recent_Posts函数
使用说明:调用最新发布的函数。可以自定义widget的标题$title,默认为Recent Posts(最近文章);自定义显示数量$number,最大值15,默认10。函数调用方式:
< ?php the_widget('WP_Widget_Recent_Posts', $instance, $args); ?>
使用举例:例句一,把此widget的标题“最近文章”定义为H2,红色显示;例句二,定义widget的标题为“最新日志”,并显示15条评论。
<?php the_widget('WP_Widget_Recent_Posts','','before_title=<h2 style="color:#F00;">&after_title=</h2>'); ?>
<?php the_widget('WP_Widget_Recent_Posts','title=最新日志&number=15'); ?>
WP_Widget_RSS函数使用
WP_Widget_Search函数使用
WP_Widget_Tag_Cloud函数使用
WP_Widget_Text函数使用
这是一个自定义调用内容的函数,有$title、$text、$filter三个参数;$title是标题名,$text是内容,$filter参数具体作用不知,官方也没有说明,如果给它赋值的话$text前后会加上P标签。应用举例:
<?php the_widget('WP_Widget_Text','title=Text_title&text=Text_content'); ?>
<?php the_widget('WP_Widget_Text','title=Text_title&text=Text_content','before_title=<h2 style="color:#F00;">&after_title=</h2>'); ?>
使用举例:例句一,自定义的标题是Text_title,内容是Text_content;例句二,在一的基础上把标题Text_title搞成红色。
我想搞一个牛叉点的调用怎么办?$text支持HTML呀。
<?php the_widget('WP_Widget_Text','title=友情链接说明&text=
<p>标题:Loome洛米<br />
描述:分享wordpress技术相关技术,解决wordpress使用中的相关问题。<br />
地址:<a href="http://www.loome.net/" >http://www.loome.net/</a></p>
<p>我已经在你博客上留言。链接已经做好。</p>');?>
如果是乱码记得把你的文件保存为UTF-8格式