让Wordpress主题支持Widget功能
Widget一直是让我感觉很神秘的东西,所以我从设计第一个模板到现在的第二个模板的alpha版,我都没有触及到这个东东,而今天下定决心一定要搞定Widget之后,我发现他并不是我想象的难。
也许真正的拿语言来写一个完整的这么个东东确实是个比较有挑战的事情,而所有为我们扫清道路上一切障碍的Wordpress却把这个东东简化的不能再简化,这也许就是那么多人喜欢Wordpress的一个原因吧。
废话不多说,我简单的说一下我今天的所学所得,也就是让我们制作的主题支持Widget功能。
首先我们需要一个PHP的判断语句,判断是否存在register_sidebar函数,如果存在则在为函数增加一个数组参数,然后执行此函数,代码如下:
if ( function_exists('register_sidebar') )
register_sidebar(array(
'before_widget' => '
<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>
',
'before_title' => '
<h2 class="widgettitle">',
'after_title' => '</h2>
',
));
register_sidebar(array(
'before_widget' => '
<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>
',
'before_title' => '
<h2 class="widgettitle">',
'after_title' => '</h2>
',
));
这个判断写在一个functions.php里面,然后把functions.php这个文件和主题文件放在一块就可以了。
然后我们需要在sidebar里面再加一个判断语句,判断是否支持动态侧栏,如果不支持则显示判断语句中间的部分。代码如下:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
如果不是动态侧栏(包括没有添加侧栏模块),就显示这里的内容,可以是php、html和js代码。
<?php endif;?>
如果不是动态侧栏(包括没有添加侧栏模块),就显示这里的内容,可以是php、html和js代码。
<?php endif;?>
OK,就是这么简单,赶快为你的主题添加Widget功能吧。
BWT: 在学会让模板支持Widget后,我就把这个功能增加到了我新做的主题Blue Focus里面。
Tags: widget, WordPress, 主题 | 1,211 views
如果你觉得IE不好用(微软自己都承认IE的技术不如Firefox),你可以 ,来体验Firefox带给你的超爽感觉。




November 27th, 2007 at 8:50 pm
怎么说呢?Wordpress的Widget功能实在是鸡肋。请看拙文:
http://skytalks.org/archives/30.html
April 15th, 2008 at 3:26 pm
这个对我非常有用。