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
另外说明:网上相关教程很多,但绝大部分教程里面的代码的标点符号都是全角,根本无法使用,你需要把全角自己手工改成半角。而本文的符号全部进行了规范,可以正常使用。
学习了,这个以前还真不知道呢
之前我一直漏掉了
现在恍然大悟了,多谢