【转载】wordpress源代码研究-侧边栏的实现

[url]http://lgone.com/html/y2009/256.html[/url]

wordpress的widget.中文的后台显示名称叫小工具。包括你自己添加自定义代码进去的文本工具。

有一些工具是主题自带的,有的些是你自己加的,或者说在你安装了某些插件之后插件为你加上的。这些所有用可用的插件,他们的信息都是保存在option表中的,我们都知道,在WP初始化的第一步(我前面的文章《wordpress源代码研究-前台运行流程》里有讲到),就把这些数据放到全局变量中了。所以在构造侧边栏的时候,基本流程就是读取这些数据,然后将我们选中的小工具显示出来。

具体是如何做的呢,数据的准备我们不说了,无非就是查库数据格式化。

我们从第二步开始说,首先一个页面得到请求,他会调用到模板页去显示。而模板页面(index 或者single)他们除了有自己特殊的一些信息的展现代码之外,还包含了一些通用的模板(大模板中包含子模板)。比如header.footer.当然还有我们今天的主角就是sidebar.然后这些小的模板又被包含,被激活。

我们的东西就在sidebar里面,我这个模板的定义是这样的。

1
2
3
4
<div id="sidebar">
<ul>
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>;
.......
就是说如果存在dynamic_sidebar这个函数的话,就调用这个函数,如果这个函数返回的是false(表明他没干成什么事,没有输出),那就执行下面的东西。

下面是什么呢?下面其实就是和上面这个dynamic单词对应的,static的东西了。就是说主题默认的几个widget。比如日历啊,搜索框啊什么的。

当然,我们怎么会没有dynamic_sidebar呢。这个函数就位于你的wp-includes/widgets.php里,搜一下就找到了。他就是整个widget的核心。

他得到我们选择好的widget列表,怎么得到?前面已经把数据准备好了,他读一下就OK了。

然后再按图索骥,foreach每一个widget,得到他们的具体信息,这个具体信息是什么内容呢?最重要的内容就是有一个callback函数及其参数。就是说这个widget要怎么怎么表现自己,就在这个widget的callback函数里写好了。最后就是在每个widget里调用这个widget.带上他的参数。然后widget的HTML就出来了,输出,OK。打完收工。

当然,还是前面说的,WP把很多细节工作做得很好,不看代码真是不会体会到。但是繁琐当然也是随之而来。看你想学什么了。

其实我也不知道为什么我要发这篇这么弱智的东西来冒充教程。我有罪。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值