首页 > 技术贵在折腾 > 给您的WordPress博客加个底边栏Sidebar

给您的WordPress博客加个底边栏Sidebar

2010年6月22日 发表评论阅读评论
给你的wordpress加个底边栏

给你的wordpress加个底边栏

此文将带你DIY一次,让你给你的WP博客加入一个漂亮的底边栏。在开始之前,请确保备份好你要修改的模板,更稳妥的办法是备份你所有的网站文件及数据库。备份完毕后你就可以尽享DIY的乐趣了。

第一,找到functions.php文件,搜索:“register_sidebar”并在其后加入如下代码。不同的模板加入代码会不尽相同,请与上面的north_sidebar、south_sidebar、west_sidebar、east_sidebar其中的任意一个保持一致。并记下这里的name为footer,备用。

register_sidebar(array(
'name' => 'footer',
'before_widget' => '<div class="widget-wrap"><div class="widget %2$s">',
'after_widget' => '</div></div>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));


如果你修改的是默认模板,请打开functions.php(themes\default\functions.php)文件,第13行,你会看到如下代码,在第20行加入上述代码。确保默认模板被启用的情况下,你可以在“外观—小工具”里看到上面图片所示的footer效果。

if ( function_exists('register_sidebar') ) {
 register_sidebar(array(
 'before_widget' => '<li id="%1$s">',
 'after_widget' => '</li>',
 'before_title' => '<h2>',
 'after_title' => '</h2>',
 ));
}

第二、在模板跟文件夹下创建sidebar-footer.php文件,里面的输入如下内容:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('footer') ) : ?>
<?php endif; ?>

如果您修改的是默认模板,则需要在themes\default\文件夹下创建sidebar-footer.php文件,输入上述内容。这里请注意“dynamic_sidebar(‘footer‘)”里的footer为上面定义的“’name’ => ‘footer‘”的footer,如果你乐意,你可以定义为meixiaojiji、baidusb、woyangwei、mengnan等你所喜欢的任意字符串,但要确保对应。

第三、打开你的footer.php文件。在适当的位置加入 如下内容:

<div class="footer_sidebar">
   <?php get_sidebar('footer'); ?>
</div>

如果您修改的是默认模板,则需要在themes\default\footer.php文件里输入上述内容。注意到上面代码中蓝色的footer了没?对,他也是和上面使用“register_sidebar”函数定义时同一个footer。而类型为footer_sidebar的DIV标签,则是约束显示效果的。

第四、在您的style.css文件末尾加入:

#footer .footer_sidebar{
 margin:0px auto;
 width:100%;
 background:#f00;
 overflow:hidden;
}
#footer .widget-wrap {
 float: left;
 width: 25%;
 margin-bottom: 36px;
 background:#f00;
}
#footer .widget {
 margin:0px 20px;
}
为WordPress博客加入底部栏

为WordPress博客加入底部栏

如果您修改的是默认模板,则需要在themes\default\style.css文件里输入上述内容。

第五、在您的“外观-小工具里”找到footer,加入想要在底部文件显示的内容,这里我选择了功能、分类目录、日历、标签云。请加入四个小工具,达到最佳的显示效果。此图是显示效果,好吧,我承认这么弄是很丑,或干脆说很烂,但问题是咱们这才刚刚开始呀。

第六、找到你的底部文件footer.php,如果您修改的是默认模板,则是themes\default\footer.php文件。

<div id="footer">
<div class="footer_sidebar">
<div id="foot_rss_feed">
<a href="<?php bloginfo('rss2_url'); ?>">< ?php _e('Subscribe RSS', 'elegant-grunge') ?></a>
</div>
< ?php get_sidebar('footer'); ?>
</div>
<div id="copyright">这里篇幅比较多省略掉</div>
</div>

找到你的底部文件style.css,如果您修改的是默认模板,则是themes\default\style.css文件,在底部加入如下代码:

#footer {
	display:block;
	border-top:1px solid #f3ddac;
	line-height:145%;
	width:100%;
	overflow: hidden;
	color:#ccbfac;
	background:url(images/footer.jpg) no-repeat #4c4c4c;
}
#footer a {
	color:#f3f4ee;
}

#footer h2 {
	color: #fff;
	font-size: 1.3em;
	margin-bottom: 15px;
}
#footer .footer_sidebar{
	margin:0px auto;
	overflow:hidden;
	width:1000px;
}
#footer .widget-wrap {
	float: left;
	width: 25%;
	padding:40px 0px;
	line-height:180%;
}
#footer .widget-wrap li {
	list-style-type:none;
}
#footer .widget {
	margin:0px 10px;
}
#footer #foot_rss_feed a {
	display: block;
	position: absolute;
	background-image: url(images/rss.png);
	width: 149px;
	height: 126px;
	margin-left: -55px;
	margin-top: -55px;
	text-indent: -1900px;
	overflow: hidden;
}
底部文件,经过CSS样式后,变的更加漂亮

底部文件,经过CSS样式后,变的更加漂亮

后记:本文只是给大家介绍了一个,自己DIY底部文件的思路。至于样式的漂亮与否,各人的修为不同,肯定差别很大。如果您有什么好的建议,欢迎留言,咱们一起DIY出自己喜欢的博客。岂不是很有成就感?

更多
  1. 2010年8月25日23:42 | #1

    我添加了这些诶代码后,边栏没显示在底部,而是乱排在侧边栏右边和下边,是不是需要修改样式参数??

  2. 2010年7月16日11:38 | #2

    @请教Widget设置,源代码乱码问题 @tim 是编码问题。但因没能提供他博客的编码,这里咱们也只好进行假设。假设他博客编码是UTF-8(Wordpress默认编码),而他编辑的文件保存的时候保存成了别的编码,典型的就是ANSI,使用记事本编辑肯定出这个问题。解决办法就是,把被编辑的文件下载下来,使用Editplus另存为UTF-8编码,用二进制方式上传。

    @tim 你的邮件我已经收到,估计下午能给你鼓捣鼓捣。至于美化方面,我就不给你弄了,毕竟这东西很占用时间。

  3. tim
    2010年7月16日10:18 | #3

    @不 得言

    已经send到你的qq邮箱了

  4. tim
    2010年7月16日10:17 | #4

    @请教Widget设置,源代码乱码问题

    应该是编码问题吧,是否哪些地方忘记保存为UTF-8的编码了?
    坐等不得言的正确指导~~

  5. 请教Widget设置,源代码乱码问题
    2010年7月16日07:00 | #5

    我的WordPress博客正在建设中(域名没备案下来,不能放出),我也想按照你的办法给底部加个Widget底边框。可我进行修改后传到测试空间,为什么在IE下浏览正常,源代码怎么成了乱码啊。我特别看了一下,只要是英文就没事,但只要是汉字就一定是乱码。博主有什么好办法吗?

    另外,博主的模板真漂亮。在那里找到的啊。

  6. 2010年7月16日06:03 | #6

    @tim 可以,你发我QQ信箱:114971497#qq.com或amim#budeyan.com 或5ihllcn#163.com(请把#换成@你懂的)。如果我没猜错,出现这段代码的原因是,你按照我的办法在加入我回复的代码之前,按照我日志里介绍,加入代码造成的。不过这一切都是猜测。期待你发附件给我。咱们一同学习。

  7. tim
    2010年7月16日01:11 | #7

    @不 得言

    哇~我都感动到快哭了~真的回复了~
    我按照你给我的提示照做了,但是奇怪的是后台上方会莫名多出一片白色的地方显示这段东西
    /** widgets */ if( function_exists(‘register_sidebar’) ) { register_sidebar(array( ‘name’ => ‘footer’, ‘before_widget’ => ‘
    ‘, ‘after_widget’ => ‘
    ‘, ‘before_title’ => ‘
    ‘, ‘after_title’ => ‘
    ‘, )); }

    未知朋友可以否这样,我附件这份主题给你,你帮我增加footer这个sidebar的地方。
    然后回这份附件给我,我对照原本的主题来进行学习。这样可能会高效一点。
    你应该看到我邮箱地址的,可以email一下我,我明天就把主题发给你。

    谢谢

  8. 2010年7月15日22:05 | #8

    @tim 你好,这位朋友。正如你所说,没有这些怎办?其实也简单,你把下述代码复制到你的functions.php文件里任意地方,但我建议放在最后最后。保存一下,上传,就可以出现了。

    /** widgets */
    if( function_exists('register_sidebar') ) {
    	register_sidebar(array(
    		'name' => 'north_sidebar',
    		'before_widget' => '<div id="%1$s" class="widget %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h3>',
    		'after_title' => '</h3>'
    	));
    	register_sidebar(array(
    		'name' => 'south_sidebar',
    		'before_widget' => '<div id="%1$s" class="widget %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h3>',
    		'after_title' => '</h3>'
    	));
    	register_sidebar(array(
    		'name' => 'west_sidebar',
    		'before_widget' => '<div id="%1$s" class="widget %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h3>',
    		'after_title' => '</h3>'
    	));
    	register_sidebar(array(
    		'name' => 'east_sidebar',
    		'before_widget' => '<div id="%1$s" class="widget %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<h3>',
    		'after_title' => '</h3>'
    	));
    	register_sidebar(array(
    		'name' => 'footer',
    		'before_widget' => '<div class="widget-wrap"><div class="widget %2$s">',
    		'after_widget' => '</div></div>',
    		'before_title' => '<h2>',
    		'after_title' => '</h2>',
    	));
    
    }

    这里请允许我稍作解释。north_sidebar是右侧最上面那个;south_sidebar右侧边栏最下面的;west_sidebar中间部分的左侧;east_sidebar中间部分的右侧。正如我们看地图一样。右侧的侧边栏你可以看成一个小地图,上北下南左西右东,这个是完全因个人习惯而定义。你甚至可以定义为1、2、3、4这种(当然是可以的,但不建议,我认为你用了等一段时间自己都迷糊了,不便于以后修改)。footer则是底部的了。

    至于register_sidebar函数,你可以参考register_sidebar

  9. tim
    2010年7月15日21:15 | #9

    你好,请问如果本来主题就不支持sidebar的~
    我找不到register_sidebar这个,那么如果主题本来不支持widget~
    主题是单栏形式的~我想添加一个底部的sidebar,我应该如何操作呢?
    如果可以的话,可以指导下我吗?

    感激

  10. 胸围三尺三
    2010年6月23日10:45 | #10

    博主能教教我怎么制作吗,我按照你的介绍在本地用默认模板做测试,根本就不成功啊。我用的是WordPress 2.92中文版。博客还没有开呢,就遇到这么大的麻烦,那一点点的兴致都快慢慢消失了。博主能发扬共享精神,把你的模板共享给我一份不。不胜感激。

    另:等我博客测试好了,想跟你做个链接。我qq是:77055342 谢谢。

评论分页
1 2 3 712
  1. 2010年6月23日23:30 | #1

    [...] 第三、在header.php里找到我认为合适的地方,加入下面代码。这里我在ID为logo的DIV容器里加入。加入时请在你的浏览器里测试,确定代码的排版缩进良好,别把好好的代码搞的乱乱的。这里“Subscribe RSS”中文意思是“订阅 RSS”,如果你想使用中文,请确保你的编码保存为utf8格式——ANSI格式会让你的中文编程乱码。右图则是我在制作底部四栏时加入的,如果你喜欢底部四栏那种表现思维(不是说你喜欢我那DIY出来的丑陋风格)请移步《给您的WordPress博客加个底边框》 [...]

  2. 2010年7月11日21:24 | #2

    [...] 如果你的WordPress主题没有底部Widget,你正苦恼于寻找相关资料,进行实战DIY,我这里有一则日志或许能帮助你。《给您的WordPress博客加个底边框(Widget)》,如日志标题所述,通过那则文章你可以知道如何DIY你自己的底部Widget。实际上,我当前模板使用的iNove主题,原本是没有底部widget的,是我DIY了一个底部Widget,目前感觉良好。这里推荐出来,希望能够对大家有所帮助。 [...]

  3. 2010年7月16日22:33 | #3

    [...] 早在6月22日,我的博文《给您的WordPress博客加个底边框(Widget)》,详细介绍了如何DIY你的WordPress主题,给主题加个底部栏,支持Widget。我用WordPress主题iNove模板进行介绍,为了周全,还介绍了使用默认主题时,加入底部栏的情况。自认为比较全面了,但当时并没有考虑到,WordPress主题不支持Widget侧边,底边的情况。 [...]

  4. 2010年7月25日07:54 | #4

    [...] 给您的WordPress博客加个底边框(Widget) [...]

  5. 2010年12月23日08:47 | #5

    [...] WordPress圣诞主题的底部,还是参考别人的圣诞主题包,重新编辑设置了底部Widgets,如果你的博客还没有底部widgets,请参考我的博文《给不支持Sidebar的WP主题加侧边栏,底边栏》、还有博文《给您的WordPress博客加个底边框(Widgets)》。从两个方面介绍了如何加底部Widgets,这里不再骜述。 [...]

  6. 2011年1月14日11:33 | #6

    [...] 4、如果您的博客没有侧边栏Sidebar,可以参考我的博文《给您的WordPress博客加个底边栏sidebar》和《给不支持Sidebar的WP主题加侧边栏,底边栏》或许对您有所帮助。 [...]

  7. 2011年7月11日11:19 | #7

    [...] 早在6月22日,我的博文《给您的WordPress博客加个底边框(Widget)》, 详细介绍了如何DIY你的WordPress主题,给主题加个底部栏sidebar,支持Widget。我用WordPress主题iNove模板进行介 绍,为了周全,还介绍了使用默认主题时,加入底部栏sidebar的情况。自认为比较全面了,但当时并没有考虑到,WordPress主题不支持 sidebar侧边,sidebar底边的情况。 [...]

  8. 2011年7月11日11:20 | #8

    [...] 第一,找到functions.php文件,搜索:“register_sidebar”并在其后加入如下代 码。不同的模板加入代码会不尽相同,请与上面的north_sidebar、south_sidebar、west_sidebar、 east_sidebar其中的任意一个保持一致。并记下这里的name为footer,备用。 查看源代码打印帮助 [...]