2006-07-14

Sidebar一分為二

對於Sidebar,我希望在首頁的時候可以全部都顯示出來。在其他的地方就簡單化,其他不必要的東西全部都可以去掉。本來是想直接把單頁那項的讀取sidebar的功能直接去掉。但這樣做的話,之後若想再加其他東西上都會變的很麻煩。因此我就利用了Sidebar Widgets的功能。

直接打開sidebar.php這個檔案,然後把本來的

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
變成
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(1) ) : ?>

這個目的是為了把本來的Sidebar Widgets變成1。
有了1當然也要有2,因此我在sidebar下面我喜歡的地方加入了下面這樣的東西。

<?php if (is_home()) { ?>
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(2) ) : ?>
<?php endif; ?>
<?php } ?>

或是

<?php if ( is_home() and function_exists('dynamic_sidebar') and dynamic_sidebar(2) ) {} ?>

我利用is_home這個函數來判斷是否是首頁,若是的話就顯示第2個Sidebar Widgets。(這邊我沒有把is_home包進if裡面提為了閱讀上的方便)

最後再更改functions.php這個檔案

if ( function_exists('register_sidebar') )
register_sidebar();
變成
if ( function_exists('register_sidebar') )
register_sidebars(2);

最後在外觀裡面的Sidebar Widget,就可以看到2個Widgets。照自己喜愛的意思設定即可。
相關文章:

4 comments:

-TMA-1- » links for 2006-07-17 提到...

[...] Superbil.info » Sidebar一分為二 (tags: Tech WordPress Widgets Tips) [...]

李杰玩网 | jaylee’s blog » 轻轻松松将siderbar一分为二 提到...

[...] 在参考了“Sidebar一分為二”这篇文章后,我摸索出了一个简单的将siderbar一分为二的办法,具体步骤如下: [...]

Carrie 提到...

請問這方法適用於K2的Theme嗎?因為我在我的sidebar.php裡找不到你說的

模板修改手札之分离Sidebar at I Should Do... 提到...

[...] 我本以为 get 语句可以直接调用“.php”文件,可事实却并非如此。修改完毕之后我刷新single日志页面,发现一句错误提示,大意是没有找到“get_postsidebar”这个函数。然后我就想方设法的定义“postsidebar”,可最终都失败了。 但我实在不想就这么放弃,于是请教了hvl和小O,他们给了我一些很好的建议和理论上的帮助,然后我又在Internet上搜到这么一篇文章:Sidebar一分為二。然后如此如此这般这般…于是乎大工告成!? [...]