Wordpress Widgets简介
Wordpress2.2.x开始正式把widgets作为内部功能之一。这说明了widgets的成功和人心所向,也说明了大家对于添加一个小功能就要修改theme的template的厌倦。widgets最初是一个wordpress的plugin,叫dynamic sidebar,顾名思义,就是动态生成sidebar而不需要修改代码。而现在功能强大,不仅仅可以动态生成sidebar,页面的任何位置,只要设置了支持widgets就可以使用拖拽的方式来控制布局。
在安装了widgets插件后(wordpress2.2.x及以上版本无需安装),在Admin->Presentation->Widgets中,就可以看到所有页面上的widgets container和所有可以使用的widgets,需要做的就是将widgets拖拽到理想的区域就可以了。而且大多widgets还支持基于AJAX的设置页面,用户友好度也非常好。
实现一个widget也是非常惬意的一件事情。如果你有一个非widgetized的plugin那么只需要做很少的改动就可以把它变成一个widget。比如有一个plugin叫做recent_comments,原来你必须在sidebar.php中修改代码,加上相应的get_recent_comments()函数。现在只需要做一些改动,让这个plugin支持widget就可以直接拖拽了。大概是这个样子:
function get_recent_comments() {
/* 原来的函数,不需要改动 */
}
// 下面的代码让这个plugin支持widget
function widget_recent_comments_init() {
// 万一我们没有widgets plugin的话
if ( !function_exists('register_sidebar_widget') )
return;
function widget_recent_comments($args) {
extract($args);
// 下面就是输出的东西,直接打到页面上。
echo $before_widget; // 这些都不能丢下。(标准!)
echo $before_title;
echo 'Recent Comments';
echo $after_title;
echo get_recent_comments();
echo $after_widget;
}
// 注册widget
register_sidebar_widget('Recent Comments Widget', 'widget_recent_comments');
}
// 再所有plugin都载入之后再载入这个widget,防止有dependency的问题。
add_action("plugins_loaded", "widget_recent_comments_init");
非常简单,所以我已经把我所有要用到的不是widget的plugin都widgetize了。









请问如果我只想做一个放点JAVA代码的东西,也要做成插件,再widgetize么?
还有顺便问下你用的评论是什么插件么?
第一个问题:
Widgets是用来在sidebars(就是我Blog上右侧的两条)上自定义内容的东东。如果我没有理解错的话,你是说代码语法高亮么?那是不需要使用Widgets的。而且Wordpress也没有要求必须要使用Widgets,使用以前那种直接修改Template代码的方式还是支持的,只是比较恶心罢了。:)
第二个问题:
我用的是Math Comment Spam Protection这个plugin。你可以在这里找到:http://sw-guide.de/wordpress/plugins/math-comment-spam-protection/
嗯,我还是没有搞懂plugin和widget的区别。
可以说widget是一种特殊的plugin。
LZ 你的那个贴代码的是widget还是plugin 哪有下载么? 怎么使用?
wordpress 新手 谢谢!!