WordPress添加sidebar小工具Widget的应用

林继 WordPress 3,945 共写了764个字 (2010-12-16 23:42:17) 没有评论 打印 扫描二维码 百度已收录

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

A sidebar中只有1个widget

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

  1. if ( function_exists('register_sidebar') )
  2. register_sidebar(array(
  3. 'before_widget' => '<div id="%1$s">',
  4. 'after_widget’ => '</div>',
  5. 'before_title' => '<h3>',
  6. 'after_title' => '</h3>',
  7. ));

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

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

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

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

B sidebar中有多个widget

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

  1. if( function_exists('register_sidebar') ) {
  2. register_sidebar(array(
  3. 'name' => 'widget1',
  4. 'before_widget' => '<div id="%1$s">',
  5. 'after_widget' => '</div>',
  6. 'before_title' => '<h3>',
  7. 'after_title' => '</h3>'
  8. ));
  9. register_sidebar(array(
  10. 'name' => 'widget1',
  11. 'before_widget' => '<div id="%1$s">',
  12. 'after_widget' => '</div>',
  13. 'before_title' => '<h3>',
  14. 'after_title' => '</h3>'
  15. ));
  16. }

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

  1. <?php if ( !function_exists(‘dynamic_sidebar’)|| !dynamic_sidebar(widget1) ) : ?>
  2. <?php endif; ?>
  3.  
  4. <?php if ( !function_exists(‘dynamic_sidebar’)|| !dynamic_sidebar(widget2) ) : ?>
  5. <?php endif; ?>

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

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

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >