首页 > 积累 > Wordpress边栏自定义

Wordpress边栏自定义

2010年4月9日 Sager 发表评论 阅读评论

今天折腾了许久的边栏,把过程写一下吧。

目标:能够将边栏按需要分割成多块,实现边栏的自定义。

之所以折腾这个东西,是因为想把默认边栏内容和小工具混合起来用。一般主题都有默认的边栏,这个边栏模板是在sidebar.php里定义的,可通过后台的“外观->编辑”修改。 另外一种更直观的修改方式则是从“外观->小工具”里修改边栏。比如我现在用的是iNove主题,默认有north,south,east和west四个边栏块,分别位于边栏的上部分,下部分,中间的右边和中间的左边。这样,把小工具里列出来的widgets往对应想放的位置拖放就可以了。
从sidebar.php中可以找到这样一段代码

<?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(‘north_sidebar’) ) : ?>

<?php endif; ?>

这个是用于判断当前这个边栏块(比如north)是否是动态的,也就是是否是用了小工具里的widget,如果用了,则这两句代码中间的内容将不起作用,否则起作用。也就是说,在一个边栏块里,要么用widget,要么用默认的或者自己编写的php代码。而不能两者共存。因此要想在边栏里同时用widget和代码,就必须把边栏分成多个块,而在每个块里使用单一的形式(widget或者代码)。有时候,比如想先用一个widget,再用一段代码,再用widget,再用一段代码,这就至少需要4个边栏块了,如果只是主题默认的分块的话显然是不够的。下面将介绍如何对边栏进行自定义的分割,得到多个块。

边栏自定义分割方法:
1. 找到主题目录下的functions.php文件(或者直接在外观-编辑里找到),在里面找到

if( function_exists(‘register_sidebar’) ) {

register_sidebar(array(
‘name’ => ‘north_sidebar’,

));

}

这个里面每一个register_sidebar函数就相当于定义了一个边栏块。你想要几个块就复制几次,只要把name=”改成别的块名字就行了。
2. 在sidebar.php中对应的位置写上多个下面的代码块(一个代码块对应一个边栏块),注意对应的名字要改

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

3. 以上基本就自定义的分割好了边栏,剩下的任务是到style.css里添加相应的块的css。一般id就是前面定义的name,可以通过查看html源代码确认一下。

到此为止,就能自如的分割边栏,并且实现widget和代码的混用。

分类: 积累 标签: , ,
  1. 2010年4月12日17:26 | #1

    学习了!为这个边栏搞得焦头烂额

  1. 2010年5月21日16:31 | #1