【Blog】讓某些小裝置只在某些頁面出現

我很喜歡在我的網誌首頁放一些有的沒有的東西,例如世界各地的時間、到某件事情發生的倒數計時,朋友們的網誌聯播等等,但是這些東西如果在各篇文章的網頁中也要出現的話,就顯得太複雜了,於是在【升級】Blogger Beta 大改版說過,希望可以讓某些東西只在首頁出現。以前的Blogger可以用一些標記括號起來,如此就能做到讓被括號起來的地方只出現在首頁或是個別的文章頁面。現在,我要介紹的是在Blogger Beta中的做法!

有興趣的人可以先參考這一篇文章:Blogger beta:讓某一項只在首頁(非首頁)顯示 at 色彩斑爛

在Blogger Beta中,決定一些語法是否被執行,用的是<b:if cond='條件'>、<b:else/>和</b:if>來決定,舉例來說:

<b:if cond='條件'>
  當條件符合時,執行這裡!
<b:else/>
  當條件不符合時,執行這裡!
</b:if>


所以,我的作法就是,當條件符合時,才執行顯示小裝置的動作,否則,則不執行!

好,我的條件是什麼呢?就是該頁的網址是不是和網誌的網址相同,如果是的話,就表示現在是在首頁,可以把很多東西顯示出來,如果不是,就是在個別文章的頁面,此時,就把某些東西隱藏起來!

舉個例子,例如我右手邊Blog Look的語法,原本是:

<b:widget id='HTML31' locked='false' title='Blog Look' type='HTML'>
<b:includable id='main'>

<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>

</b:includable>
</b:widget>


這時候,為了讓在首頁才能出現這個裝置,我加上了condition的判斷,程式碼改成下面的樣子:

<b:widget id='HTML31' locked='false' title='Blog Look' type='HTML'>
<b:includable id='main'>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>

<b:include name='quickedit'/>
</b:if>
</b:includable>
</b:widget>


其實,總而言之,就是在<b:includable id='main'>後面加上
<b:if cond='data:blog.url == data:blog.homepageUrl'>以及在 </b:includable>前面加上</b:if>將整段程式碼包起來即可,如此一來,只有在符合condition(首頁)時,才會顯示這個小裝置!

這個小技巧也可以在設定不同的condition時,做不同的顯示,請大家自由發揮了!

另外,這個作法有一個缺點,我也搞不清楚到底是怎麼一回事!如果小裝置中有Feed時,請不要把它隱藏,因為隱藏之後,反向連結的搜尋似乎會失效,不過如果沒在用反向連結的人就沒差了!


則Facebook留言:【建議使用Facebook系統留言】


則blogger留言:【使用Blogger系統留言(可匿名)】

. 匿名 提到...

我從來都不曉得反向連結是做什麼用的耶??

. Unknown 提到...

嗨~路過貴寶格,想請教關於反向連結的問題^^",我想引用文章時,我該怎麼引用才能讓我的文章中出現所引用的連結呢?

在我的blogger上要怎麼讓"反向連結位置"那個地方跑出那個連結網址呢?

謝謝

【使用Blogger系統留言(可匿名)】


Related Posts Plugin for WordPress, Blogger...