DiggLife

登录
  • 首页面
  • 有关于
  • 怡春院

首页 > 博客研究 > 如何让Wordpress模板支持Sidebar Widgets(侧边栏插件)

如何让Wordpress模板支持Sidebar Widgets(侧边栏插件)

Category: 博客研究 | widgets | wordpress | 侧边栏 | 修改 | 插件 | 模板 | 2007.08.23

wordpress-logo-cristal 昨天研究了一下Wordpress的模板修改,主要是为了给一个不支持自定义侧边栏的三栏模板加入这个简单方便的功能.其实我是一个PHP文盲,对Wordpress模板的修改也并没有深刻的了解,下面是作为一个门外汉研究心得,只讨论实现方法,并不深究原因,没有多大的技术含量,希望高手不要见笑.

一.有关侧边栏的两个重要文件

侧边栏所涉及到的主要集中在这两个文件上,我的理解是,sidebar.php负责侧边栏的显示内容,fuctions.php在这里则负责侧边栏如何显示.一个不支持侧边栏插件的模板没有functions.php这个文件,sidebar.php中也没有调用语句.

二.Functions.php文件修改.

为了让模板支持侧边栏插件,首先需要新建一个functions.php文件,然后添加一些代码.我参考了一些文章和许多模板代码之后,发现三栏和两栏的fuctions.php代码在细节上有些区别,为了更加清除地说明,下面分两种情况讨论(我靠,怎么像做数学啊): 1.两栏模板(侧栏只有一列)


< ?php if ( function_exists('register_sidebar') ) register_sidebar(array(
'before_widget' => '<li>',    // #1
'after_widget' => '</li>',     // #2
'before_title' => '<h2>',      // #3
'after_title' => '</h2>',       // #4
));?>

其中#1和#2是定义Widget内容前后标识符的语句,#3和#4是定义Widget标题的标识符的语句.根据模板的具体情况而定,你可以参考sidebar.php中已经定义过的侧边栏来决定应该采用哪种标识符.比如我修改的那个模板的sidebar.php中:

<div id="sidebar_r">//右栏模块
<ul>
<li> //Widgets前标识
<h2>< ?php _e('Archives'); ?></h2>//Widgets标题
<ul> < ?php wp_get_archives('type=monthly'); ?></ul>
</li>//  widgets后标识 ......
</ul>
</div>

所以我应该在#1和#2语句中的’ ‘内填入分别填入<li>和</li>,#3和#4语句中的’ ‘内填入<h2>和</h2>.

2.三栏模板(侧栏有两列) 通常情况下,三栏模板的functions.php可以按照如下代码定义:

< ?php if ( function_exists('register_sidebar') ) register_sidebar(array(
'name' => 'Left Sidebar',         //#5
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));

if ( function_exists('register_sidebar') ) register_sidebar(array(
'name' => 'Right Sidebar',      //#6
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h2>',
'after_title' => '</h2>',
)); ?>

不要看代码很长,其实还是很简单.因为侧栏有两列,所以代码自然比单列的两栏模板多出一段,而且几乎一样.区别只在#5和#6两处的name,所谓name就是给widget指定各自的名称,以便在sidebar.php中分别调用.所以你只需要给这两个widget取两个自己认得的名字就好了.

三.Sidebar.php文件的修改.

functions.php改好之后,sidebar.php就非常之简单了.我们只需在合适的地方加上下面这段代码:


< ?php if ( function_exists('dynamic_sidebar') &amp;&amp; dynamic_sidebar('#7') ) : else : ?>

< ?php endif; ?>

其中<strong>#7</strong>为widgets的名称,对应name属性的值(#5和#6).

<strong>以我的右栏为例:</strong>

<div id="sidebar_r">//右栏模块
<ul>
#8
<li> //Widgets前标识
<h2>< ?php _e('Archives'); ?></h2> //Widgets标题
<ul> < ?php wp_get_archives('type=monthly'); ?></ul>
</li>//  widgets后标识
......(更多模板默认的widgets)#9
</ul>
</div>

如果你想保留默认的sidebar定义,在#8处加上上述代码的第一行,在#9处添加第二行即可.如果你不再需要默认的sidebar定义,可以将他们全部删除,直接加上上面的代码(推荐). 两栏模板只需添加一次,三栏模板需要给左右两列各添加一次,当然要对应functions.php中各自的name.

四.总结

1.模板不同,代码会有差别,请根据模板的情况决定代码.

2.上面这些我试验过多次,证明是可行的而且也是简单的,如果有什么错误的地方,请在留言中指出,谢谢.

3.参考:Crystown的WordPress Widget研究(一)

了解更多相关信息

  • 如何让Wordpress模板在不同页面显示不同侧边栏
  • 20款美观的三栏Wordpress主题模板
  • 24款新鲜,易用,优雅的Wordpress主题模板
  • 20款绝对不会让你失望的Wordpress模版.
  • 8款优雅简洁的Wordpress模版
  • 美味标签中最受欢迎的10大Wordpress主题模板
  • 如何从YouTube,优酷,土豆等视频网站下载在线视频
  • 升级Flash Player 10导致WordPress Flash上传工具失效
  • 使用开放的模板创建Google文件
  • 关于Wordpress2.6的图片说明(image Captioin)

  • 热门日志TOP10

    • 7款替代Nero的免费CD/DVD刻录软件下载 - 365,337 Views
    • 7款不错的免费Windows杀毒软件 - 165,949 Views
    • 如何从YouTube,优酷,土豆等视频网站下载在线视频 - 92,400 Views
    • 全能的在线视频下载工具:WebVideo Downloader - 83,044 Views
    • 免费刻录软件Starbun,不仅仅是刻录 - 65,930 Views
    • 如何将Word文档转化为PDF - 40,852 Views
    • 7个漂亮的Vista主题(视觉样式)下载 - 31,589 Views
    • PPC,Windows Mobile手机免费软件下载网站:PPC Freeware - 27,354 Views
    • Ubuntu技巧:Ubuntu软件安装方法完全指南 - 25,975 Views
    • 5款优秀的免费系统清理工具 - 25,762 Views
  • 最近更新

    • 保存现有设置无痛安装Ubuntu 9.04
    • I got an iPod Touch
    • 打造谷歌音乐桌面版
    • 选择复选框的快捷键
    • Linux下的日文词典EBView
    • 只针对搜索引擎显示Adsense广告
    • 帮你玩填字游戏:Crosstip
    • 如何增加Vista系统分区的容量
    • 应对Gmail当机的几种办法
    • 动漫消息两则
  • 无偿推广

    Web Video Downloader
  • 订阅

      什么是RSS订阅
      抓虾
      google reader
      鲜果
      有道
      订阅到QQ邮箱
      统计
  • 分类

    • Ubuntu技巧
    • Windows技巧
    • 业界新闻
    • 个人随想
    • 博客研究
    • 掌上设备
    • 数位游戏
    • 火狐技巧
    • 电影动漫
    • 社会文化
    • 网站推介
    • 谷歌相关
    • 超酷装备
    • 酷软推荐

© CopyRight: DiggLife | Creative Commons Licence | 鄂ICP备08004928号
A private theme Designed by sofish, & proudly powered by wordpress.

Back to top