2012年6月7日

讓Blogger的標籤能「多層」樹狀分類__(一)基本安裝

讓Blogger的標籤能「多層」樹狀分類__(一)基本安裝

Wayne Fu 0 A+

(Pic from: I Loathe Multi Level Marketing)
過去雖然使用了「兩層式樹狀標籤」來管理,使側邊欄標籤不至於凌亂,不過伴隨著文章數逐漸增多後,當一個標籤下有了三、四十篇文章,不但訪客爬文花時間,自己找舊資料也麻煩,就算部落格裝了文章分頁的功能,也是要跳好幾頁才能爬完一個標籤的文章。

因此為了訪客的方便,其實也是給自己回頭找資料方便,例如 "Blogger Hack" 這標籤原本有將近三十篇,個人習慣把文章分類細分到一個標籤下最多十幾篇,一個頁面就能顯示該標籤所有文章的狀態,如此完全不需要跳頁就能一覽該標籤的文章;以上就是著手構思多層次樹狀標籤的源起。

2013.1.4 公告

樹狀標籤更新版本已經發佈,請「按此跳至新版頁面」,安裝新版本可避免舊版本會發生的狀況與問題。



一、基本功能

基本安裝的版本包含了以下基本功能:

1. 自訂要展開的層數

2. 每個大分類、次分類都有開合開關

3. 每個大分類、次分類標籤都能統計文章數

4. 可選擇是否顯示大分類、次分類的統計文章數


二、準備動作

1. 跟「兩層式樹狀標籤」一樣,先將 Blogger 所有文章的標籤改為 "AAA-BBB" 這樣的階層標籤格式,請參考下圖──



以本文的標籤為例,原本正常的標籤名稱是「多層樹狀分類」,但要使用這個樹狀標籤系統的話,必須將標籤名稱改為階層式,彼此之間用 "-" 分隔開,就像上圖一樣,將標籤改為「電腦-Blogger Hack-樹狀標籤-多層樹狀標籤」,這樣系統才能辨別。由於本版本支援多層次標籤,想分幾層就能分幾層,例如 "AAA-BBB-CCC-DDD-EEE" 就能分成五層囉!而文章數不多的情況下,一開始只要兩層就夠用了;隨著文章數增多再來增加層級進行管理。

2012.12.15 增補

【留言 #22】發生了標籤名稱使用單引號「'」讓程式當掉的結果,由於單、雙引號「'」「"」這兩個符號在 js 裡面當成字串的話會讓程式當掉,請避免用這兩個符號當標籤名稱。

另外,標籤名稱也請避免使用全形符號,因為常會造成 Blogger 的編碼錯誤而讓程式當掉。


2. 到 Blogger 後台 → 範本 → 修改 HTML

3. 接著把下面的 Javascript 插入 </head> 的前面:

<script type="text/javascript">
var Category_Name = ["電腦","休閒","理財"];
</script>

  (1) 如果安裝過兩層式樹狀標籤,這個動作是重複的,就不必再做了。
  (2) 以上紅色的字串請改為想要的大分類名稱(就是標籤格式 "AAA-BBB" 中的 AAA)。

  (3) 要填入幾個大分類都可以,填入的順序就是在側邊欄由上到下顯示出來的順序

  (4) 字串必須放在雙引號內,每個字串用逗號隔開;最後一個字串的雙引號後面不能有逗號



三、安裝主程式碼

如果在側邊欄有新增「標籤」這個小工具的話,相信在範本內可找到類似以下的原始碼:(沒有的話請先安裝「標籤」小工具)

    <b:if cond='data:display == &quot;list&quot;'>
      <ul>
      <b:loop values='data:labels' var='label'>
        <li>
          <b:if cond='data:blog.url == data:label.url'>
            <span expr:dir='data:blog.languageDirection'><data:label.name/></span>
          <b:else/>
            <a expr:dir='data:blog.languageDirection' expr:href='data:label.url'><data:label.name/></a>
          </b:if>
          <b:if cond='data:showFreqNumbers'>
            <span dir='ltr'>(<data:label.count/>)</span>
          </b:if>
        </li>
      </b:loop>
      </ul>
    <b:else/>
      <b:loop values='data:labels' var='label'>
        <span expr:class='&quot;label-size label-size-&quot; + data:label.cssSize'>
          <b:if cond='data:blog.url == data:label.url'>
            <span expr:dir='data:blog.languageDirection'><data:label.name/></span>
          <b:else/>
            <a expr:dir='data:blog.languageDirection' expr:href='data:label.url'><data:label.name/></a>
          </b:if>
          <b:if cond='data:showFreqNumbers'>
            <span class='label-count' dir='ltr'>(<data:label.count/>)</span>
          </b:if>
        </span>
      </b:loop>
    </b:if>

接著將以上全部的幾十行程式碼,全部置換為以下內容(如果安裝過「兩層式樹狀標籤」,就沒有以上內容,請將舊的兩層式樹狀標籤程式碼置換為以下內容,小心!請先備份範本):


存檔後重新檢視網頁就可以看到效果,請參考本站右邊的側邊欄;不過會發現不完全一樣對不對?除了圖示、間隔有調整過,因為本篇只是基本安裝,而標籤「全展開」、「全收起」的功能,為了不讓本文版面太凌亂,會另開一篇說明;且某些開合的圖案經過 Blogger 處理後會變形,這也需要另外一篇完整的文章來說明。

2012.8.25 補充

留言 #16 Marst Lee 遇到特殊的狀況,複製程式碼時,會連程式碼的編號 A. B. C. 都一起複製,但是若使用市佔率較普遍的瀏覽器,不太會發生把編號也一起複製的情形;Marst Lee 使用的瀏覽器名稱為「360極速瀏覽器」,也請複製時注意一下若發生連編號也複製的情形時,建議改用 Chrome、Fire、IE 等本部落格測試正常的瀏覽器複製。


四、注意事項

目前測試的結果發現有兩點需要注意:

1. 如果設定了不存在的大分類名稱,會造成版面亂掉:例如 Category_Name 裡面設定了 "AAA","BBB" 兩個大分類,實際上部落格若是沒有一篇文章是用到 "BBB" 這個大分類的話,那麼當程式碼讀不到 "BBB" 這個分類時,就會有版面的問題。也許某些站長會有習慣把大分類設好,再來慢慢寫文章,省得常常新增大分類,這是可以理解的;如果有這方面的需求請另外告知,再來想想怎麼改程式碼。

2. 任何大分類、次分類名稱請不要當作真實的標籤名稱:例如設定了 "健康-飲食-早餐" 這個標籤後,大分類是 "健康"、次分類是 "健康-飲食",真實標籤名稱是 "早餐",那麼之後請不要把其他文章的標籤設成 "健康" 或是 "健康-飲食",因為原本這兩個分類名稱都會各自統計子標籤的文章數目;如果再把標籤設成 "健康" 或是 "健康-飲食",每個標籤也都會有自己的文章數目,那麼系統就分不出 "健康" 到底是分類還是標籤,也就不知道要怎麼統計文章數目了,希望這樣的說明能夠理解。


五、自訂參數、版面配置

如果滿意系統預設的參數、版面配置,那麼就可以開始使用了;如果想要自訂參數、版面配置,請繼續往下看。

C:所有紅字的部分都是可以改的參數──

  showLevel:預設顯示兩層的樹狀標籤,如果想顯示三層就填入 3,以此類推。
2012.7.27 增補

把 showlevel 的參數改為 1,則預設只會顯示一層標籤,就成了預設全部收起的效果。

  showTitleCount:預設會顯示每個大分類、次分類的文章總數;如果不想顯示大分類、次分類的文章總數,請填入 "N"。
  openLogo:展開樹狀標籤的圖案,可改為自己想要的圖示。
  closeLogo:收起樹狀標籤的圖案,可改為自己想要的圖示。
  listLogo:條列標籤的圖案,可改為自己想要的圖示。
  sp:標籤的分隔符號,可自行定義為別的符號,那麼文章的標籤也要改為自定義的分隔符號。例如:改成 "»" 符號的話,標籤就要改成 "AAA»BBB»CCC" 的格式。

E~H:Loop 所有標籤,將標籤名稱、超連結、文章數等資料存在 tLabel_Data 這個陣列,並且排序。

J~T:一言難盡,總之是判斷哪些標籤的大分類、次分類名稱不需要印出。

V~AG:很難解釋,總之是算出每個大分類、次分類的文章總數。

AH:終於有可以修改的地方了──

  k * 10:這是大分類、次分類縮排的 px 值,10 這個數字可根據自己想要縮排的程度而調整。
  color:這裡的顏色數值決定 "開合圖案" 的顏色。

AJ:style='color: #073763; font-family: \"標楷體\"; font-weight: bold;' 這裡的內容決定大分類、次分類的顏色、字型、字體粗細。

AO:k * 10 的改法跟 AH 行一樣,這裡是設定真實標籤名的縮排程度。

AQ~BF:呃...嗯...總歸就是找出開合區域的終點,印出 </div>。

BL:如果每個大分類之間不想要空一行,可以把 <p/> 刪掉。

以上便是大致可修改的地方,每個人喜歡的顏色、圖示、配置、長寬都不一樣,如果改哪裡還有問題請再個別提出了,下一篇的內容為樹狀標籤全部開合的修改方法;如果有排序的問題、開合圖案字元想使用圖檔,請看第三篇。


讓Blogger的標籤能多層樹狀分類」系列標題:
一、基本安裝
二、全部開合
三、各種疑難雜症
四、更新版本

➢➢ 快速選單:
0 0
如這篇文章對你有幫助,歡迎「分享」到 FB、「追蹤」粉絲團、「訂閱」最新文章

49 則留言:

  1. 你好, 我做完之後發覺下面其他的標籤欄比上面的闊了很多.
    是什麼原因?

    回覆刪除
  2. http://worldtravellersblog.blogspot.hk/
    Thanks a lot!!!!

    回覆刪除
  3. <2641541601702951889>(以上內容請勿刪除,從括號之後開始留言)

    o .. 成功了!!! 很開心!! 感謝你啊!!

    另外, 謝謝你的意見啊!!! 我地會慢慢改善的!! 我們還在剛剛開始寫 blog 啊!! ^^

    回覆刪除
  4. 版大你好,照著這篇文章的指示,安裝得非常成功,感謝這個部落格提供了這麼多詳盡的資訊!

    但我有個問題,如果想讓標籤們預設為收起,該如何修改呢?有點不太確定『全部開合』這篇文章的意思,想請教一下 =)

    回覆刪除
  5. 非常感謝!用了幾分鐘就成功完成設定。改天再來拜讀進階設定調整.

    回覆刪除
  6. 謝謝你的美言。網頁設計我是外行,只是希望幫助學習英文之用。
    期待你的新文章,共沾雨露。

    回覆刪除
  7. 你好我有個奇怪的問題想請教,
    我照您的方法設定樹狀標籤成功了

    不過我修改範本裡面原本打的 " 符號
    在我儲存範本 再點進去看 都會變成 "
    雖然網頁顯示上是沒問題
    可是我想要修改的時候就變得很眼花...

    不知道您是否知道是哪裡的問題呢?
    感謝!

    回覆刪除
  8. 對了,有套用您語法的測試blog如下
    http://cheertest.blogspot.tw/

    感謝!

    回覆刪除
  9. 感謝你的認真回覆!!:D
    關於& quot;這件事,我想就先算了哈哈哈!
    畢竟我非高手!

    使用圖檔那篇文章太棒了,我設定完看到那篇馬上連過去改了XD
    其實我listlogo沒有使用圖檔,而是投機的換個小符號。

    我對hack的經驗完全是片段的啊!
    對html只有非常非常粗淺的認識(大概就會改改顏色行距這樣而已XD)
    開始用blogger後,想要什麼效果,就拼命的google
    自己吸收一下,土法煉鋼,數據改改、預覽看看XDD 這樣而已。

    只能說非常感謝網路上有你們這些高手啊!

    openlogo跟closelogo的距離問題我有稍微改過了
    感謝你幫我發現 讓畫面更好看的小細節。

    我的主要網址cheermeee@blogspot.tw中的recent posts跟recent comments
    沒有被影響耶,還抓的到資料,
    感謝你推薦的文章,我把他記入我的evernote筆記本了。

    另外感謝你lazyload的最佳安裝法
    成功的解決我討厭的 過一下畫面會跳回最上面的問題。

    大感謝:DDD (不知不覺打超多佔你版面了:P)

    回覆刪除
  10. 請問我要怎麼加大段落行距阿?
    就是每行分類名稱中間
    謝謝

    回覆刪除
  11. <6527926250119954460>(以上內容請勿刪除,從括號之後開始留言)
    Sure!!

    這個改變是改變每個標籤的段落行距
    那如果我想改第一層分類和第二層分類的距離
    要如何更改程式碼呢?

    一直麻煩你!
    謝謝WFU大!!!!!!!!!!

    回覆刪除
  12. <2922503945061460278>(以上內容請勿刪除,從括號之後開始留言)um...我用預覽看...他一整個都不見了欸=D

    回覆刪除
  13. <5459266261227260859>(以上內容請勿刪除,以下引言請自行刪減) [quote]um...我用預覽看...他一整個都不見了欸=D[/quote] 我發現因為我已經將AH行的程式碼都換掉for圖案開合,如此我仍可用這方法嗎?

    回覆刪除
  14. (不好意思~~~@@)
    謝謝WFU大大的留言,我接觸模二已經很多年了,本來和網友都在xuite寫故事,後來大家才陸陸續續搬到blogger,xuite的語法都很簡單,blogger用什麼語法就挫折什麼,不過用出來真的很有成就感。

    不好意思,現在還有新的問題,我從「二層樹狀」要改成「多層樹狀」,功能是有用出來了,但我的出現的問題是:
    1.右邊的功能表除了「標籤」一欄,其他的功能全部都跑到底下去了??
    2.我用APPLE的Safari,無法點進去文章裡面(也就是滑鼠點到「閱讀更多」不會出現一隻手 ),但用IE瀏灠器卻可以點文章進去?
    3.如果我的文章只有一個大分類沒有小分類(也就是AAA-BBB-CCC,這篇文章就是AAA),這樣文章要怎麼改?我曾經把文章改為AAA-AAA-AAA,這篇文章在「標籤」會變成BBB的等級。

    謝謝WFU大大的解決Q_Q

    http://leoyomi.blogspot.tw/

    回覆刪除
  15. 你好,不好意思。來打擾WFU大了,不知道為什麼我安裝了標籤小工具都找不到那段程式碼,是因為我用的範本是Blogger官方的嗎?如期說是找不到,倒不如說是很小段。會不會是因為我在版型上改變成三欄的關係呢?

    以下為本網誌
    http://hmmichihm.blogspot.hk/

    回覆刪除
  16. TAT...已經按照您的方法進行操作,最後出現一個"A"的東西..是不是有什麼錯誤操作了TAT,能幫我看看嗎
    http://findmyapps.blogspot.hk/

    回覆刪除
  17. <8310297350476534705>(以上內容請勿刪除,從括號之後開始留言)
    我用的瀏覽器是一個基於chrome的變種瀏覽器,360極速瀏覽器(因為集成了比較多的功能所以比較方便XD)
    感謝你的指導哦,我再試試

    回覆刪除
  18. <8764973250543541532>(以上內容請勿刪除,以下引言請自行刪減) [quote]已經成功了,謝謝WFU大!原來是我放錯位置XDDD![/quote]
    不知道WFU大會不會研究一下繼續閱讀這個功能?希望它可以在同一頁面展開收合,不用轉換的說。網路上有無腦安裝包,但應該和新版的Blogger無緣了。

    回覆刪除
  19. 最近這幾天詳細的看了版大的各篇文章及留言,沒想到您當初連HTML都不懂啊!!但是看到您的部落格還以為是專業人士呢!
    另外,請問一下:在教學裡面有看到可以改文字的顏色及字體,但是沒看到字的大小,因此我自行在AJ這行增加了『font-size: 14px;』這幾個字(亂改的),但是卻沒有效果。請問如果要變更整體樹狀標籤的字體大小,該如何更改呢?
    感謝!

    回覆刪除
  20. 我有套用你這篇的介紹真的是太好用了 ,

    因為我才剛用網誌不久 , 想請問一下我右邊欄的框框有辦法可以弄

    成一樣的大小嗎 >??

    http://gesanglaba.blogspot.tw/

    回覆刪除
  21. <1127837550525127938>(以上內容請勿刪除,從括號之後開始留言)

    真是太感謝你了 , 沒想到差一點點結果確是大大的不同 , ^^ 看你的BLOG 真的讓我受益很多呢

    回覆刪除
  22. 可以麻煩幫我看看嗎 http://allan-claire.blogspot.tw/

    分享的部分,為何標籤會出現兩次??
    謝謝

    回覆刪除
  23. <5612592928528882997>(以上內容請勿刪除,從括號之後開始留言)謝謝 刪除引號 就OK了

    回覆刪除
  24. 不好意思,又來請教您問題了。
    1)想要讓大分類也能做link,出現點選"▼"的效果,不論點"▼"或按大分類名都可以展開,要怎麼修改?
    2)我的"文章分類"到第一個大分類之間,空格很大,爬了您寫的hack幾篇文章,我好像只看到修改k值(可能是我漏看了…@@),請問這部分能怎麼修改?
    謝謝

    回覆刪除
  25. <2902844957147017307>(以上內容請勿刪除,從括號之後開始留言)謝謝您的回覆。我把那行奇怪的玩意弄掉了,不知打哪來的^^"
    敬待您的新版本. 先說謝謝唷~
    ps.因為寫了很多年的blog,廢話難免多了些,文章數就不小心爆成這樣子了^^"

    回覆刪除
  26. 不好意思想問一下, 為什麼我照上面的做 標籤上的東西全都消失了呢?

    回覆刪除
  27. 我試了好久還是不行~~請救命啊

    回覆刪除
  28. http://hkgold123.blogspot.hk/
    這是我用來做測試的

    真正的在
    http://diablohkgold.blogspot.hk/

    我試過都還不行 所以才想說會不會我把CODE弄亂了
    就開一個新的測試網頁

    回覆刪除
  29. <2422821399083897141>(以上內容請勿刪除,從括號之後開始留言)

    是不是跟我的文章有關? 所以才不顯示呢@@

    回覆刪除
  30. <1554182924676864349>(以上內容請勿刪除,從括號之後開始留言)

    感謝 馬上改!

    回覆刪除
  31. <1554182924676864349>(以上內容請勿刪除,從括號之後開始留言)

    超級無敵大成功!!!感謝大大

    原來是標籤出了問題, 還有我有時候忘了按"展開小裝置導至有錯亂,

    無限感激!

    回覆刪除
  32. 不好意思, 不知道為什麼跟著你的步驟去改
    最後標籤欄全都不見了><

    http://kazeal138.blogspot.hk/

    謝謝

    回覆刪除
  33. 抱歉, 我解決了
    原來之前在後台版面配置裡有改過TAGS的設置
    現在改做所有標籤就沒事了

    回覆刪除
  34. 大大抱歉還是我, 請問標籤內的排列是怎樣排好??
    例如您的BLOG為例, 如果第2層內還有第3層的TAG的話, 就會放在最上, 如此類推
    但是在我的BLOG裡, 是真實標籤裡混著第2層TAGS
    感覺有點亂
    請問如何排好??

    最後找到這篇文章真的很好, 一直很郁悶為什麼blogger的標籤不像其他blog一樣, 沒想到可以自己做xd

    回覆刪除
  35. 原來是自己沒看到-3-"" 待會弄弄看
    如果還是弄不到就等大大的新版了
    謝謝解答><

    回覆刪除
  36. 怎樣才能標簽跟著我想要的排序呢??

    回覆刪除
  37. 好實用❤ 順利把樹狀圖建好~ 非常謝謝你的分享!!!:D

    回覆刪除
  38. 謝謝您的分享,我也成功改好了,這樣以後文章量大就沒什麼問題啦,真的很感謝您喔!
    也請兄至敝blog參觀指教,謝謝!
    http://celadon-dt.blogspot.tw/

    回覆刪除
  39. 請問: 您文中的步驟二. 3中提到: 把下面的 Javascript 插入 /head 的前面
    我在小工具中找不到head, 只看到 Header1 請問是這個嗎? (我想可能是Blogger版本的差異所致吧)

    回覆刪除
  40. <1317694302325448066>(以上內容請勿刪除,從括號之後開始留言)謝謝。

    回覆刪除
  41. 我正在設法將原有標籤改成 I. A - D, II. E - H, III. I - L的大分類,可是還試不出階層的效果。
    可否請您幫忙看一下我的網頁右邊標籤中間在 I 的部分 (I. A - D-Adele, I. A - D-Agnès Amann, I. A - D-Aleksey Arkhipovskiy, I. A - D-Amer-Inkas, I. A - D-becixmat 應該是要隸屬於 I. A - D 這個大分類之下的)
    我不太清楚我是在哪裡出了問題,可否可以麻煩您幫忙指正?
    網址: http://www.05.phf-site.com/

    回覆刪除
  42. <6172269060072671276>(以上內容請勿刪除,從括號之後開始留言)
    1. 抱歉--這裡不就是關於樹狀標籤的文章留言區嗎??
    2. 我有在後台處理過 所以標籤的地方才會出現三角型的東西啊(我再去檢查看看好了 謝謝)

    回覆刪除
  43. <627164623123947345>(以上內容請勿刪除,從括號之後開始留言)
    謝謝您。
    我今天下午用同樣的方法處理另一個未公開的部落格是成功的,但我不知道為何在這個部落格會不成功(很可能是在大分類的名稱中不能出現 "-"吧,因為我稍早在另一個部落格中發現那樣命名好像會有問題。)謝謝您的協助,我再試著更改分類名稱試試看。

    回覆刪除
  44. 作者已經移除這則留言。

    回覆刪除
  45. <6328658384338608674>(以上內容請勿刪除,從括號之後開始留言)
    先不麻煩您-我自己先試試好了,因為我剛才在"music and images"的部落格把"-"改成"~"也不行。我想應該就是這類的問題導致無法成功顯示階層吧。謝謝,暫時不打擾您了,我自己再試試看。

    回覆刪除
  46. 不好意思 我重複更改 AAA-BBB 文章標籤的地方 但還是出不來耶
    http://tim12332013.blogspot.tw/ 能不能幫我看看 謝謝你@@

    回覆刪除
  47. 從這一步驟就開始沒用了
    因為根本沒有head
    3. 接著把下面的 Javascript 插入 的前面:

    回覆刪除
  48. a0988522319@gmail.com
    請高手解惑
    我想完成標籤的分類

    回覆刪除
  49. 請問這個記憶開合是不是只for舊版的兩層樹狀分類呢?
    https://www.wfublog.com/2011/10/tree-label-4.html
    目前照著下面這版做多層樹狀分類
    https://www.wfublog.com/2012/06/multi-tree-label-1.html
    但是不知道怎麼將"記憶開合"功能放進去
    還是
    https://www.wfublog.com/2013/01/multi-tree-label-update.html
    https://www.wfublog.com/2016/05/blogger-tree-label-v2.html
    這兩個多層樹狀分類有機會做出"記憶開合"功能
    再懇請幫忙,謝謝

    回覆刪除

張貼留言注意事項:

◎ 勾選「通知我」可收到後續回覆的mail!
◎ 請在相關文章留言,與文章無關的主題可至「Blogger 社團」提問。
◎ 請避免使用 Safari 瀏覽器,否則無法登入 Google 帳號留言(只能匿名留言)!
◎ 提問若無法提供足夠的資訊供判斷,可能會被無視。建議先參考這篇「Blogger 提問技巧及注意事項」。
◎ CSS 相關問題非免費諮詢,建議使用「Chrome 開發人員工具」尋找答案。
◎ 手機版相關問題請參考「Blogger 行動版範本的特質」→「三、行動版範本不一定能執行網頁版工具」;或參考「Blogger 行動版範本修改技巧 」,或本站 Blogger 行動版標籤相關文章。
◎ 非官方範本問題、或貴站為商業網站,請參考「Blogger 免費諮詢 + 付費諮詢
◎ 若是使用官方 RWD 範本,請參考「Blogger 推出全新自適應 RWD 官方範本及佈景主題」→ 不建議對範本進行修改!
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 為了過濾垃圾留言,所有留言不會即時發佈,請稍待片刻。
◎ 本站「已關閉自刪留言功能」。

TOP