因此本篇用自己的方式來說明、及補充上一篇「Blogger頁面判斷式」不足之處。
一、四種頁面判斷式
Blogger 的頁面判斷式共有四種,而標題 "七種" 是因為在 "index" 這個頁面判斷式,原作者再細分成四種頁面形態,所以總共成為七種頁面判斷的方法。
1. archive:文章封存頁面
這個頁面是指官方小工具「網誌存檔」所產生的頁面,網址結尾為 "年份_月份_01_archive.html" 類似這樣的格式。
<b:if cond='data:blog.pageType == "archive"'>
這裡的程式碼,在文章封存頁面才會執行。
</b:if>
P.S. 請注意──
- 按下「網誌存檔」的月份時,才會顯示此文章封存頁面。
- 按下「網誌存檔」的年份時,並非文章封存頁面!請注意網址,顯示的是「二、各種索引頁面」→「4. 較新的文章、較舊的文章頁面」,這是很不一樣的地方。
2. item:文章頁面
文章頁面的網址結尾為 "/年份/月份/文章網址字串.html",類似這樣的格式。
<b:if cond='data:blog.pageType == "item"'>
這裡的程式碼,文章頁面才會執行。
</b:if>
3. static_page:靜態網址頁面
靜態網址頁面是由「網頁」小工具所產生,其網址結尾為 "/p/靜態網址字串.html",類似這樣的格式。
<b:if cond='data:blog.pageType == "static_page"'>
這裡的程式碼,靜態網址頁面才會執行。
</b:if>
4. index:索引頁面
這是最複雜的一種頁面,包含了首頁、標籤、搜尋頁面等情況,因此給予單獨說明。
二、各種索引頁面
<b:if cond='data:blog.pageType == "index"'>
這裡的程式碼,索引頁面才會執行。
</b:if>
當看到以上程式碼時,代表以下四個標題的頁面都會執行。而如果要這四種情境的頁面單獨執行程式碼,請見以下說明。
1. 首頁
首頁也是索引頁面的其中一種,下面是最佳的判斷式語法:
<b:if cond='data:blog.url == data:blog.homepageUrl'>
這裡的程式碼,首頁才會執行。
</b:if>
2. 標籤頁面
按下標籤連結時所產生的頁面,下面是最佳的判斷式語法:
<b:if cond='data:blog.searchLabel'>
這裡的程式碼,標籤頁面才會執行。
</b:if>
3. 搜尋頁面
搜尋頁面必須解釋一下,這是利用「官方導覽列搜尋框」時所產生的頁面,網址會有 "/search?q=搜尋字串" 類似這樣的格式。
下面是最佳的判斷式語法:
<b:if cond='data:blog.searchQuery'>
這裡的程式碼,搜尋頁面才會執行。
</b:if>
可參考「Blogger 最強搜尋框工具」來改造這個搜尋框,有較佳的版面配置、且能快速顯示搜尋結果。
4. 較新的文章、較舊的文章頁面
這種頁面很難簡單解釋,主要有兩類:
- 從首頁按下「較舊的文章」之後所產生的頁面,而不是其他諸如 "標籤頁面"、"搜尋頁面" 、"文章頁面" 等所產生的「較舊的文章」頁面。
- 按下「網誌存檔」小工具的年份時,所產生的頁面。
此類頁面的網址會有 "/search?密密麻麻的參數" 類似這樣的格式。它跟「3. 搜尋頁面」很類似,網址都有 "search?" 字串,但不同點是網址不會有 "q=搜尋字串" 這樣的格式。
我目前還想不出有什麼情境,要為這樣的頁面寫特別的程式,不過還是列出這種頁面的判斷式語法供參考:
<b:if cond='data:blog.pageType == "index"'>
<b:if cond='data:blog.searchQuery == ""'>
<b:if cond='data:blog.searchLabel == ""'>
<b:if cond='data:blog.url != data:blog.homepageUrl'>
這裡的程式碼,較新的文章、較舊的文章頁面才會執行。
</b:if>
</b:if>
</b:if>
</b:if>
說真的,程式碼又臭又長,似乎也沒有實用性,希望哪天能幫它找到應用方式。
三、注意事項
介紹完所有的判斷頁面語法後,讀者需要小心的是,這些都是屬於「Blogger 自創的語法」,不是所有地方都能執行,請注意以下:
1. 不可放在「HTML/Javascript 小工具」之中,因為這不是 html 也不是 js 語法,是無法執行的。
2. 不是範本中所有位置都能執行,可放在
3. 如果放在
更多 Blogger 判斷式說明:
你真是專才! 勁!
回覆刪除看到這篇,覺得你實在太強了.....
回覆刪除我把這篇文章加入書籤,已備不時之需....
<4277929264434179867>(以上內容請勿刪除,從括號之後開始留言)
回覆刪除對了!有沒有辦法除了文章頁面與靜態網址的頁面之外,archive、index 還有 home 等等頁面,文章列表只顯示標題,而隱藏摘要。參考:Blogger 標籤、網誌存檔,只顯示標題
目前「教會的網誌」,已參考上面連結,實現了這種效果,但「archive 封存頁面」卻不知為何還是一樣,正如本文所說"年份並非文章封存頁面",所以年份頁面仍然有效果,但月份卻還是預設的,請問這是什麼原因呢? 頁面判斷式語法應該如何寫?
<6201215281714861920>(以上內容請勿刪除,以下引言請自行刪減) [quote]目前「教會的網誌」[/quote]
回覆刪除我的經過變動後,會有小小的混亂,都是靠這篇救了我的版面。
回覆刪除