在WordPress不同页面显示不同侧边栏
之前我的博客只有一组侧边栏,在所有页面左右两侧都显示相同的侧边栏,过于千篇一律,对搜索引擎不友好,用户体验也不好。刚才忙了下,部分内容只在首页显示,在第二页,第三页,独立日志页,分类和标签页面都不显示。
1)首先添加几个widget
打开文件wp-includes/widgets.php,把
wp_register_sidebar_widget(’recent-comments’, __(’Recent Comments’), ‘wp_widget_recent_comments’, $class);
复制一下,增加一行
wp_register_sidebar_widget(’recent-comments2′, __(’Recent Comments’), ‘wp_widget_recent_comments’, $class);
这样就多了一个最近评论的widget。
类似的,把
wp_register_sidebar_widget(’recent-posts’, __(’Recent Posts’), ‘wp_widget_recent_entries’, $class);
复制一下,增加一行
wp_register_sidebar_widget(’recent-posts2′, __(’Recent Posts’), ‘wp_widget_recent_entries’, $class);
就多了一个最近日志的widget。其余widget以此类推。
完了后把widgets.php上传并覆盖原文件,你会发现widget都了好几个。
2)其次添加侧边栏
打开functions.php编辑,把
register_sidebar(array(’name’ => ‘Left Sidebar’, ‘id’ => ‘left-sidebar’));
复制,添加一行
register_sidebar(array(’name’ => ‘Left Sidebar’, ‘id’ => ‘left-sidebar2′));
这样就多了一个左边的侧边栏,用同样方法可以添加一个右侧的侧边栏。
然后你就可以把第一步生成的widget拖动到新添加的侧边栏了!
3)最后一步,在不同页面显示不同侧边栏
编辑sidebar.php文件,
如果是首页就显示第一种侧边栏:
if (is_home() && dynamic_sidebar(’left-sidebar’));
如果是独立日志页就显示第二种侧边栏:
elseif (is_single() && dynamic_sidebar(’left-sidebar2′));
另外,如果想判断目录页是不是第一页,可以用if (is_home() && !is_paged())来判断,这样可以确保只显示在第一页,第二页第三页都不显示。
收藏到QQ书签 0 我顶!



2008-6-11 7:10 pm
[...] 原文 [...]
2008-12-26 10:00 pm
我的模板没有widgets.php这个文件啊。
这种情况怎么弄的?
2008-12-26 10:01 pm
我用的是YO2的博客,也是wordpress系统。
2008-12-26 10:40 pm
yo2我没用过,widgets.php不属于模板,不是在wp后台编辑的,得修改好了用ftp上传上去才行