WordPress添加sidebar小工具Widget的应用

现在大部分WordPress主题都包含了小工具(widget),本文主要介绍下WordPress中小工具的原理。

A sidebar中只有1个widget

(1) WordPress主题所在目录中functions.php中的如下代码是注册一个widget

if ( function_exists('register_sidebar') )
register_sidebar(array(
'before_widget' => '<div id="%1$s">',
'after_widget’ => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
));

(2) sidebar中的如下代码是用来显示这些注册过的widget中的内容

<? php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
<? php endif; ?>

(3)有了这些代码后我们就可以在WordPress后台的小工具中随意添加代码了。

另外如果没有(1)中的代码,那么在后台就查看不到小工具了,此时就相当于主题不支持widget,如果没有(2)中的代码,在WordPress后台能添加widget,但是在WordPress中不能显示这些widget中的内容。

B sidebar中有多个widget

(1) 和只有1个widget情况类似,只是functions.php中相关代码改为如下(此例中有两个widget,名字分别为widget1 widget2)

if( function_exists('register_sidebar') ) {
register_sidebar(array(
'name' => 'widget1',
'before_widget' => '<div id="%1$s">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>'
));
register_sidebar(array(
'name' => 'widget1',
'before_widget' => '<div id="%1$s">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>'
));
}

(2) sidebar中的如下代码是显示注册过的widget1和widget2中的内容

<?php if ( !function_exists(‘dynamic_sidebar’)|| !dynamic_sidebar(widget1) ) : ?>
<?php endif; ?>

<?php if ( !function_exists(‘dynamic_sidebar’)|| !dynamic_sidebar(widget2) ) : ?>
<?php endif; ?>

注:在以上A和B中的步骤(1)中register_sidebar的参数要因主题的不同需要做修改,用法可以参考http://codex.wordpress.org/Function_Reference/register_sidebar

另外说明:网上相关教程很多,但绝大部分教程里面的代码的标点符号都是全角,根本无法使用,你需要把全角自己手工改成半角。而本文的符号全部进行了规范,可以正常使用。

分享到: 腾讯微博 QQ空间 新浪微博 人人网 豆瓣 Twitter

原创作者:自由人

文章来源:http://www.zenoven.com/technology/useful/2010021238.html

郑重声明:本文由原创作者直接发布或授权本站编辑转载到本站,未经作者同意,请勿随意转载,如果原文允许转载,请按作者要求,保持原文链接,否则,我们将追究相应责任。

相关日志

我要评论当前共有 2 条评论

  1. 小杰博客 说道:

    学习了,这个以前还真不知道呢

  2. 田忌博客 说道:

    之前我一直漏掉了
    现在恍然大悟了,多谢 :razz:

= 4 + 8
Please leave these two fields as-is: