首页 » WordPress » WordPress 主题教程 #6e:窗体化侧边栏

WordPress 主题教程 #6e:窗体化侧边栏

窗体化侧边栏从零开始创建 WordPress 主题系列教程的第六篇的第五部分,一个支持 Widget 的侧边栏或者说是窗体化(widgetized)的侧边栏几乎是 WordPress 主题的标准。

首先,什么是窗体化(widgetizing)呢?简单的说,窗体化就是能够通过拖拉就能够整理侧边栏的模块。比如我们需要更改分类和存档的位置,只需要简单把分类和存档列表拖到它们的位置即可,根本不用去修改侧边栏的代码。

第1步:创建 functions.php 文件

打开记事本,然后把空白文件保存为 functions.php。把 functions.txt 文件中所有的内容拷贝到 functions.php 中。

回顾一下,现在在“tutorial”主题文件夹下应该有4个文件。

number-of-files.gif

第2步:窗体化侧边栏

直接在侧边栏的第一个 <ul> 标签输入以下代码:

<?php if ( function_exists(’dynamic_sidebar’) && dynamic_sidebar() ) : else : ?>

widgetize-if.gif

直接在 </ul> 标签之前输入以下代码:

<?php endif; ?>

widgetize-endif.gif

保存 index.php 文件,然后我们到 WordPress 后台 => 外观 => Widget 就可以把 Widget 拖到侧边栏了。

原文:link

标签:

分享到:

31 条评论 添加你的评论 →

  • 白驼山人 2007-08-11 02:32:26 #

    谁把这句话解释下?谢谢

    支持1 反对

  • 白驼山人 2007-08-11 02:45:46 #

    支持 反对1

  • jane 2007-08-13 23:16:54 #

    学完这章之后,
    最后得到的效果和前一章是一样的。
    后台我也设置了widget
    没有任何变化 是正常的吗?

    支持1 反对

    • yinzhi123 2010-06-28 15:11:22 #

      我的也是这样 55
      没有侧边栏
      不知道哪里没弄好啊

      支持 反对

  • Fallout 2007-10-14 22:50:47 #

    请问如何窗体化侧边栏多个sidebar?

    支持1 反对

  • Persephone 2007-12-04 16:26:07 #

    Warning: Cannot modify header information – headers already sent by (output started at D:\xampplite\htdocs\wordpress\wp-content\themes\tutorial\functions.php:1) in D:\xampplite\htdocs\wordpress\wp-includes\pluggable.php on line 391
    我在启用插件的时候,突然页面空白,上面出现了些字,什么意思啊?
    求楼主解答!

    支持 反对1

    • NJUMWX 2010-06-08 12:08:34 #

      在头文件前有输出可以用ob_START(); 0B_END_FLUSH;解决

      支持 反对

  • Persephone 2007-12-05 08:55:38 #

    ?楼主大人能不能拨空解答一下小女子的疑问呢?
    因为又到瓶颈了,做不下去了,拜托了!
    顺便献上十二万分的感激!

    支持1 反对

  • Persephone 2007-12-05 13:20:03 #

    在这一节里,关于那个 Widget 插件,我用的是2.3.1的版本,也就是楼主提供下载的版本,根据这一节所说2.2版本之后都不需要安装 Widget 这个插件的,可是我在后台并没有看到这个插件啊!也无法启用。而且根据所有步骤做下来,跟前一章节都一样的。
    然后我去下了这个插件,但是却显示:Warning: Cannot modify header information – headers already sent by (output started at D:\xampplite\htdocs\wordpress\wp-content\themes\tutorial\functions.php:1) in D:\xampplite\htdocs\wordpress\wp-includes\pluggable.php on line 391

    实在不明白原因啊!望高手解答!谢谢!

    支持 反对

  • Denis 2007-12-06 20:02:24 #

    @Persephone 2.2 之后内置 widget 到核心代码中,在插件栏看不到,你碰到的问题是 你的 functions.php 中的代码有问题,清仔细查阅下!

    支持1 反对

  • Persephone 2007-12-12 13:19:31 #

    非常感谢楼主大人拨空回答小的的问题!
    我的确在插件栏里没有看到,后来无意中在主题,即Presitation中看到了Widgets,就在theme后面一个标签。
    我点它之后,有看到SIDE BAR,根据它上面说的,我把最下面的内容,比如日历拖到SIDE BAR中,保存后回网站看效果,并没有出现边栏,就连本来在最下面显示的日历也没有了。这是怎么回事呢?

    支持 反对1

  • Persephone 2007-12-12 13:25:02 #

    functions.php 中的代码有问题?
    为什么?我是直接复制楼主提供的代码啊!并没有做任何修改,怎么会有问题呢?

    还望楼主大人明示。
    另外,再次对楼主大人的翻译与解答深表感激!

    支持 反对1

  • Persephone 2007-12-12 13:49:01 #

    另外,三楼的JANE问道:
    学完这章之后,
    最后得到的效果和前一章是一样的。
    后台我也设置了widget
    没有任何变化 是正常的吗?

    这个问题我也很好奇答案。
    因为我是跟着楼主翻译的课程一步步学的,之前的课程中没有提到栏的问题,会不会显不出SIDE BAR是因为我的基础栏数一直是一栏的缘故呢?

    支持 反对

  • Persephone 2007-12-12 14:01:15 #

    还有一个问题(请原谅小的比较愚笨,问题比较多。)显不出两栏会不会是之前的模板没有提到“栏”的问题?
    我们一直在一栏的模式下面写程序的,会不会改成两栏就会显出来了呢?

    另外三楼的JANE问道:学完这章之后,
    最后得到的效果和前一章是一样的。
    后台我也设置了widget
    没有任何变化 是正常的吗?
    这个答案是?

    支持 反对

  • jxmoon 2008-04-04 22:07:00 #

    @Persephone 2.2 之后内置 widget 到核心代码中,在插件栏看不到,你碰到的问题是 你的 functions.php 中的代码有问题,清仔细查阅下!

    我以碰到相同问题.
    能不能请 雪山飞猪 提供一下2.5. functions.txt

    支持 反对

  • 玖伍贰柒 2008-11-21 11:45:34 #

    我根据水煮鱼的WP Theme 教程学习Theme的制作,前面的都可以,但在第6节写了代码而达不到教程所说的效果

    原文 WP Theme 教程 #6e :窗体化侧边栏
    http://fairyfish.net/2007/06/04/so-you-want-to-create-wordpress-themes-huh/

    1、按照教程做好了4个文件,就是主题没有窗体化侧边栏的效果

    2、index.php中的代码:

    <?php wp_list_pages(‘depth=2&title_li=页面’); ?>

    这段代码这样写对吗??

    3、functions.php中的代码:

    4、请高手们帮忙看看,谢谢!

    支持 反对1

  • guomian 2009-02-06 17:33:48 #

    水煮鱼:
    我按照你说的步骤完成了functions.php文件的建立,然后按照步骤正确输入,但是我刷新页面却出现Parse error: syntax error, unexpected $end in C:\xampp\htdocs\wordpress\wp-content\themes\tutorial\index.php on line 82字样!请问这是为什么?我是用的是wordpress2.7!
    期待您的解答!多谢!~

    支持3 反对

    • Denis 2009-02-06 17:39:02 #

      PHP 语法错误,自己学习 PHP!

      支持2 反对

      • guomian 2009-02-06 17:55:05 #

        输入的就是
        哪里有语法错误啦?

        支持 反对

    • livecm 2010-07-03 17:41:45 #

      “unexpected $end ” if判断没有做结束 鄙视 不负责任的回答

      支持1 反对

  • 阿星 2009-04-17 20:44:19 #

    所有呆码一点问题都没有,如果有问题请返回检查呆码,主要是引号会出问题。

    支持 反对

  • Blue3D 2009-12-11 14:59:04 #

    文章第一段:(译者注:WordPress 2.2 已经内置了 Wodgets)里面wodgets写错了一个字母。 :smile: 谢谢博主的无私奉献!

    支持 反对

  • yuanjun18 2010-12-06 21:49:54 #

    水煮鱼:
    按照你说的做了,但是刷新以后我的出现以下错误:
    Fatal error: Call to undefined function function_exits() in E:\xampp\htdocs\wordpress\wp-content\themes\tutorial\index.php on line 68
    说我没有定义这个函数?这个怎么回事啊?问题怎么解决啊?

    支持 反对

  • mize.co.cc 2011-02-28 16:48:32 #

    Widget 窗体化侧边栏 e 弄不出来

    支持 反对

  • 火子 2011-05-12 17:22:05 #

    很好

    支持 反对

  • Garcia 2011-06-02 13:43:56 #

    照着做下来,窗口边缘化实现不了啊

    支持 反对

  • axubiao 2011-08-21 14:36:02 #

    呃,请问下,我根据你文章的步骤写了主题。。但WP-CodeBox这个插件的效果却没了。。这是为什么。

    支持 反对

  • 煌呔子 2011-10-02 21:13:29 #

    出问题了出问题了 Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\loli\wp-content\themes\tutorial\functions.php:1) in C:\xampp\htdocs\loli\wp-includes\functions.php on line 861

    :cry:

    支持 反对

  • 一地鴨毛灬 2011-11-03 13:30:17 #

    functions.txt
    文件达不开啊! :roll:

    支持 反对

  • yanc蔡延春 2012-02-02 14:33:20 #

    请问一下我的侧边栏一直都是在下面的哦,不是在侧边的,这是正常的吗?而且其他东西拖拽带侧边栏后也没有在首页显示啊,这是什么问题啊?

    支持 反对

发表评论

你必须 登陆 之后才能留言。你可以使用以下方式快速登陆我爱水煮鱼:

使用新浪微博登陆 使用腾讯微博登陆 使用豆瓣登陆

你也可选择直接在本站 注册