2012年9月12日

Blogger 相關文章+任意尺寸縮圖+更多相關文章

Blogger 相關文章+任意尺寸縮圖+更多相關文章

Wayne Fu 0 A+

(Pic from: kickstarter.com)
2016.4.9 公告:因 Google Drive 外連失效,請勿使用本篇的程式碼,請改用新版「Blogger 相關文章 V2__安裝懶人包


部落格想要於文末附上相關文章+縮圖功能的話,目前最常見的選擇是 LinkWithin 與無覓。使用這兩個外掛的優點是,安裝簡單、設定容易、圖片大小相同(都是正方形)、版面一致,不需懂語法就能輕易上手。而我考慮的因素有:

1. 使用外掛的隱憂:伺服器是否穩定、該公司能營運多久。
2. Google 查到的資料:LinkWithin 安裝後抓資料要一段時間;另外可能是因為中文的緣故,抓到的相關文章不一定很相關。
3. 不喜歡圖片被裁切,很多非正方形圖片被裁成正方形很難看。

P.S. 這篇 +Julius Zhan 寫的「更新圖相關顯示小工具」,提供了使用 LinkWithin 等等一些第三方外掛的不好經驗,非常值得參考借鏡!

所以,有了製作「最新文章+任意尺寸縮圖」的經驗後,便自己著手來寫這個 hack,並增加自己想要的功能──更多相關文章、排除特定標籤的文章。使用本 hack 可以自訂所有的細項,下面第一大點為說明這個 hack 的原理,想直接安裝請跳「二、安裝程式碼」。


一、相關文章原理

根據 Abin 的「加入相關文章功能」,這個 hack 的原理是:

1. 在 feed 裡抓到該篇文章的所有標籤。
2. 根據這些標籤,從 feed 抓包含這些標籤下的文章。
3. 從這些所有文章,亂數挑出與不與原文章重複的文章。

如果對 json 及 Blogger 語法熟悉的話,那麼根據以上三點流程可把這個 hack 寫出來。

而相關文章想要增加縮圖的功能、把縮圖從原本的正方形改為自訂尺寸的縮圖,這部分的原理在「熱門文章+任意尺寸縮圖」也有談過。

最後把以上全部組合起來,就能做出「相關文章+任意尺寸縮圖」了。而「更多相關文章」這個功能其實很簡單,做一個按鈕,按下後重複執行一次程式,就能呈現另一次的亂數效果了。



二、安裝程式碼

在修改範本之前,如果第一次安裝本站工具的讀者,建議先閱讀「備份範本的訣竅」系列文章。

跟前幾篇縮圖相關的文章一樣,圖片經由 Blogger 上傳或放在 PICASA 的話,就能更改實際尺寸,其他圖床只能按比例放大縮小。以下為安裝步驟──

1. 到 Blogger 後台 → 範本 → 編輯 HTML

2. 相關文章的程式碼通常放在文章區塊的最末端,最遠的極限必須放在以下程式碼的前一行:

</b:includable>
<b:includable id='comment_picker' var='post'>


2014.3.26 更正:Blogger 範本內容似有變更,以上內容無效。除了可參考「Blogger 範本__(三)文章及留言區塊的程式碼」來查閱自己在範本中想放的位置,也可參考以下的建議,例如將本文程式碼安裝在以下字串的前一行:

<div class='post-footer-line post-footer-line-2'>
如果使用者是新範本的話,搜尋以上字串時會有兩個結果,而第一個結果是在行動範本的區塊,因此請安裝在第二個搜尋結果,才能正常顯示

或是安裝在以下字串的前一行:

<div class='post-footer-line post-footer-line-3'>

3. 選定要放置的位置後,以下為安裝的程式碼:


2014.4.17 更新:原本 AS 行的 js 檔路徑為 "https://googledrive.com/host/0BykclfTTti-0SlU3SDg5RUVtNlk/related-post-130701-min.js",但最近似乎流量遭到限制,因此更改路徑為 "https://googledrive.com/host/0BykclfTTti-0SlU3SDg5RUVtNlk/related-post-140416-min.js"。建議參照本文開頭的「2013.8.9 公告」,將 js 檔存放到自己的 google drive。

藍、紅字為可自訂的參數,每行後面均有綠字提示如何修改;而最重要的是 F~G 行的紅字,F 行填入想要顯示的相關文章數目、G 行填入縮圖的寬度(px值),就可以直接試試看效果了。而想要看展示及「更多相關文章」功能的話,請見文末的相關文章區塊,可以先試玩一下。

如果滿意的話,其他參數不一定要變動;想要調整更多細項,請看下面的詳解。


三、自訂參數詳細說明

以下行號請參考上面的程式碼──

F:本程式並不限定相關文章只出現一排,填入的數目多,出現兩排、三排都是可以的。而且程式會根據部落格的寬度自行調整每排相關文章的數量,如果部落格將側邊欄隱藏起來的話,每排相關文章可顯示的數目就能增加。

G:填入 F 行的數目後,由於每個部落格的寬度都不一樣,本行的參數必須試著加寬或縮小避免最右邊的空白太多。以本站文章區的寬度為例,預設值 120 為可讓一排裝下 4 篇文章的適切寬度。

H:如果部落格的每篇文章縮圖比例不完全一樣時,需要更改本行數值,請參考「四、調整縮圖尺寸的方法」。

I:如果部落格的每篇文章縮圖比例不完全一樣時,需要更改本行數值,請參考「四、調整縮圖尺寸的方法」。

J:如綠字敘述

K:若更改了文章標題的字型大小後,也請注意一下行高的效果,如果不美觀的話再調整行高的參數。

L:如果一篇文章有 3 個標籤,那麼本參數 20 的意思為,從這 3 個標籤的 feed 中各抓最新的 20 篇文章來當相關文章的樣本。這個數值越大的話讀取後台資料的時間越長,且如果一篇文章的標籤越多,讀取的時間也是成正比。

我看過某些部落格一個標籤下有一、兩百篇文章,如果本參數設成 20 則只有最新 20 篇文章有機會露臉;但如果想讓舊文章露臉,將本參數設成 150 這樣的數值又太誇張,會嚴重影響系統效能。所以,請自行拿捏一下吧。

M:如綠字敘述

N:如果想改邊框樣式的話,請修改 border 的 CSS 數值,例如:border: 1px solid #eeeee

O:文章沒圖片時會用此行的圖片代替,請改為自己的預設圖片,寬度最好是 G 行數值的兩倍

P:若不要顯示「更多相關文章」功能的話,Y 請改為 N。

Q:按鈕圖片可改為自訂圖案,寬度請設 200px。

R:如綠字敘述

Y~Z:部落格的某些文章是不需要相關文章功能的,例如 "站務" 類的文章。因此如果想排除某些標籤顯示相關文章功能的話,把 Y~Z 行的「站務」、「站務留言板」等標籤替代為自己的標籤即可。

想要排除幾個標籤,Y~Z 就塞進幾行這樣的敘述;同樣的,在 AM~AN 就要有相等數量的 </b:if> 結尾。

而如果全部的標籤都要相關文章功能的話,那麼 Y~Z 行與 AM~AN 行都可刪除。


四、調整縮圖尺寸的方法

如果每篇文章的第一張圖片跟 WFU BLOG 一樣,先裁好相同比例才上傳的話,那麼這個 hack 大致上只需要調整 F、G 行的參數,版面就很美觀了。但如果文章的第一張圖片沒經過處理,那麼就會有版面不美觀的問題,請依照以下兩種狀況處理:

1. 縮圖比例差異不大時:

假設部落格文章的第一張圖大多是橫向的長方形,而且比例差異不大,那麼可以在 H 行填入自設的縮圖高度,強制讓每張縮圖的尺寸一樣,而圖片又不至於變形的明顯,這樣版面就能一致了。

而同樣是橫向長方形,有的高、有的扁,強制高度一樣而導致變形嚴重的話,請採用下一點的方法。

2. 縮圖比例差異很大時:

如果部落格文章第一張圖的形狀不一,有的正方形、有的橫躺型、有的直立型,那麼也許強制裁切成正方形是讓版面美觀的唯一解。此時請I 行參數改為 "Y",並配合 G 行調整圖片寬度,讓版面美觀。當 I 行參數改為 "Y" 後,H 行的圖片高度參數將會被無視。


五、小結

本篇程式碼的安裝方式及「更多相關文章功能」,均使用動態載入、動態讀取的方式,完全不影響網頁的載入速度。另外已儘可能將想得到的參數都提供出來設定,應該是能夠解決各種狀況下的版面問題。如果使用上仍有問題的話,或是有任何意見都歡迎提出,希望能讓這個 hack 更為完善。



六、常見 FAQ

Q1: 為何小工具有時無法顯示?

Ans: 請參考本文「2014.4.17 更新」的內容,Google Drive 可能開始流量管制,建議按照「2013.8.9 公告」的指示,將 js 檔上傳到自己的空間,進行分流。


Q2: 為何有些文章無法顯示這個小工具?

Ans: 可能有兩種原因──
  • A.目前發現標籤名稱使用某些特殊符號的話,Blogger 會進行轉碼,導致讀取資料錯誤,例如全形標點符號 "、" 請避免使用。
  • B.若文章標題使用單、雙引號('或")的話,會造成 javascript 當掉,請避免使用。

Q3: 為何某些文章無法顯示縮圖?

Ans: 一方面請確定你使用的是 PICASA 圖床;一方面留言 #34 提到使用了 Windows Live Writer,也可能造成圖片無法產生縮圖,因此建議無法顯示縮圖的文章,請參考「選擇喜歡的圖片當作 Blogger 文章縮圖(封面圖)」,將文章的第一張圖,改為由 blogger 後台上傳即可。
0 0
如這篇文章對你有幫助,歡迎「分享」到 FB、「追蹤」粉絲團、「訂閱」最新文章

39 則留言:

  1. 我怎么说不显示呢?
    原来我禁止了博客供稿功能。

    回覆刪除
  2. https://code.google.com/p/blogger-related-posts/
    發現類似的東西

    回覆刪除
  3. 您好,謝謝您提供的方法!
    目前正在摸索當中,
    想請教一下,
    其中O行提到,若無圖片時改以其他圖片替代,
    若是我以PICASA的圖片連結代替後,
    之後是否有不更換連結但是替換圖片的方法呢?
    謝謝!

    回覆刪除
  4. 你好,

    我今天順便也使用這篇了 XD

    想請問~
    舊文章將標題的「、」拿掉用「/」替換,或者把所有標點符號不論全半型都拿掉,只暫時用空格代替,該篇舊文章底下仍不能出現相關文章,這屬於正常情況嗎?

    回覆刪除
  5. 呃...sorry,看多眼花了 >"<

    「標籤」不是「標題」...我...不好意思

    回覆刪除
  6. <5969312385619061693>(以上內容請勿刪除,以下引言請自行刪減) [quote]請給我無法顯示「相關文章」的網址,看看是什麼狀況~[/quote]
    沒有啦!我錯把「標籤」兩字看錯,看成了「標題」,噗~所以只是猛改「文章標題」就沒法正常顯示,現在已經ok ^^

    回覆刪除
  7. 很感謝,很好用。
    但我發現在 IE 裡面無法正常顯示,其他都正常。

    回覆刪除
  8. 不好意思,補充一下,我所謂的無法正常顯示,是指說相關文章超過一排時,在IE 瀏覽器無法正常換行,會8個縮圖都排在同一行,超出頁面之外 。

    回覆刪除
  9. 已用了一陣子,非常滿意,今天回頭想想,真的很感謝你提供這麼好用的分享。謝謝了,也很期待你的下一版呢!

    回覆刪除
  10. <1243856414378197555>(以上內容請勿刪除,從括號之後開始留言)是哦……沒關係,還是很期待呢!再次謝謝你的分享。

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

    回覆刪除
  12. Y~Z行的參數實在不太会設定。。。

    我本身有用大大分享的[多層樹狀標籤],
    每个分享帖都用上兩个標籤,例如:
    資源交流-遊戲-按年份分類-2013、
    資源交流-遊戲-按公司分類-xxx公司

    我L行的參數設為5,並曾嘗試在Y行打上想排除的標籤,例如:
    "資源交流-遊戲-按年份分類-2013"

    然後拿了一篇2013年的xxx公司的文章作測試:
    原本希望能做到的效果是:「相關文章推薦」只顯示xxx公司的相關文章,
    但結果是:「相關文章推薦」內啥文章也沒有顯示

    之後我把Y~Z 行與 AM~AN 行都刪除後,
    「相關文章推薦」終於能顯示出來,只是做不到我之前說的效果。。。

    求大大指点~

    回覆刪除
  13. 說到[標籤],又發生些奇怪的事,
    記得以前在[版面配置]>[網誌文章]>[設定網誌文章]>[張貼頁面選項]內,把[標籤]打勾後,文章就能顯示標籤。但剛剛試了同樣方法,標籤始終顯示不出來。最後我把將迷你組件範本回復為預設值,標籤就出來了,但我再嘗試在[張貼頁面選項]調整標籤位置又再失敗,原因不知是否跟安裝了大大的hack有關。。。

    說回相關文章,
    現在每篇文章的標籤都出來了,L行的參數設回20,
    想排除的標籤依舊在用「資源交流-xxxxx-按年份-2013」,

    確定無法顯示相關文章的網址:
    http://hkgcgfans.blogspot.com/2013/02/cgbd20130208innocent-greykara-no-shoujo.html

    我希望做到的效果是:每篇文章的[相關文章推薦]內只顯示「資源交流-xxxxx-按公司-xxx公司」標籤內的文章。

    回覆刪除
  14. <5697973059407728959>(以上內容請勿刪除,從括號之後開始留言)了解,感謝抽空幫忙>v<

    回覆刪除
  15. 請問我這篇文章 (http://konedreamhouse.blogspot.hk/2013/03/cl.html)的相關文章工具出了甚麼問題呢?

    按了更多相關文章後會 '當機',問題是我將文章還原為草稿嗎?

    回覆刪除
  16. <2773848969039968562>(以上內容請勿刪除,從括號之後開始留言)標籤名稱使用全形標點符號 --> 所指的是 '其他-教學 , 學術-電腦科-教學' (我的標籤)?

    回覆刪除
  17. <800034001699937563>(以上內容請勿刪除,從括號之後開始留言)已經改了,可是也不行... T_T

    回覆刪除
  18. <5534676193514899145>(以上內容請勿刪除,從括號之後開始留言)感謝抽空幫忙 ^^

    回覆刪除
  19. 您好

    我不管怎麼使用都無法顯示出來! 是還要另外設定什麼嗎?

    回覆刪除
  20. 不好意思! 我的BLOG是 http://cherstravel.blogspot.tw/

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

    我放上去了! 還是不行~_~

    回覆刪除
  22. 我已經放上去了! 但是我看到上面有一串原始碼

    是否那個要放在 /HEAD 上面! (另外我明明沒有安裝那些東西..怪怪的)

    我可以把我的範本寄給你看嗎?

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

    回覆刪除
  24. 我把BLOG從YAHOO搬到BLOGGER後,手機看舊BLOG文時沒有了預覽縮圖(相片在google drive),只有新寫的BLOG在手機看到預覽縮圖(相片在Picasa),怎樣簡單解決呢?

    回覆刪除
  25. 但我2千幾篇blog,要找回2000多張照片去upload會相當費時。
    還有其他方法嗎?

    回覆刪除
  26. 馬上貼馬上看到效果了,讚!!

    回覆刪除
  27. 功能太神了,勝過無覓、LinkWithin等外掛,感謝你

    回覆刪除
  28. 請問一下,如何更改相關文章推薦 :這幾個字的大小?

    回覆刪除
  29. 今天我拿掉了Linkwithin改裝這個,我程式碼安裝好了可是在首頁還是在單篇文章底部都沒看到這個東西出現耶!! 不知道被神隱到哪去了QQ

    回覆刪除
  30. 不好意思我又來啦!
    我剛剛發現我的相關文章縮圖有點悲劇
    我已按照設定把圖片強制裁切為正方形了
    可是卻出現如下圖那樣的狀況,請問這還有救嗎? ><
    https://lh3.googleusercontent.com/-HoY3zgf6XNw/U15ruVk9ZBI/AAAAAAAAAxA/pI2zcex9WtY/w935-h288-no/%25E7%259B%25B8%25E9%2597%259C%25E6%2596%2587%25E7%25AB%25A0%25E7%25B8%25AE%25E5%259C%2596%25E5%25A4%25A7%25E5%25B0%258F%25E4%25B8%258D%25E4%25B8%2580%2528%25E5%25B7%25B2%25E8%25A8%25AD%25E5%25AE%259A%25E5%25BC%25B7%25E5%2588%25B6%25E8%25A3%2581%25E5%2588%2587%25E7%2582%25BA%25E6%25AD%25A3%25E6%2596%25B9%25E5%25BD%25A2%25E4%25BA%2586%25E4%25B9%259F%25E9%2580%2599%25E6%25A8%25A3%2529.jpg
    (突然發現wayne沒有埋留言框貼圖跟影片語法是怕開網站會很慢嗎?)

    回覆刪除
  31. <567691740717704270>(以上內容請勿刪除,從括號之後開始留言)不@@ 我不是指你的預設圖片! 我是指強制裁切成正方形不是會把我文章第一張圖強制裁切成正方形當縮圖嗎? 怎麼會沒出現然後變成預設的圖片!?

    我以為選了強制裁切正方形就可以跟linkwithin那樣變成一格格的QQ

    回覆刪除
  32. <6532399522585000199>(以上內容請勿刪除,從括號之後開始留言)那些沒縮圖的文章幾乎都用WLW寫的呢! 因為圖片多不大可能用evernote寫(上限只有10MB)

    同樣都是用WLW寫的文章有些有縮圖有些偏沒有這才是我頭痛的地方><

    看來我只好採用你提議的方式把文章第一張圖重新用blogger文章編輯器加進去看看

    回覆刪除
  33. <2271482714669513829>(以上內容請勿刪除,從括號之後開始留言) 我剛去檢查右側欄最新文章那邊真的沒有縮圖出來!! 可是別篇用WLW寫的都有出來不知道問題出在哪?~_~

    回覆刪除
  34. <477784067305946779>(以上內容請勿刪除,從括號之後開始留言)看起來會是很花時間的陣仗,等等來給他操作一下,謝謝提點啊^^

    回覆刪除
  35. 謝謝分享,這篇好實用,終於可以不用遷就於linkwithin了。成功了,而且相關文章比之前更精準,謝謝!

    回覆刪除
  36. 不好意思請問一下
    最近在程式上有在做什麼 debug 之類的嗎?
    這個月的文章縮圖全都跑不出來了 Orz

    在這裡發現的
    http://fdaert.blogspot.com/
    需要請您看一下問題出在哪了
    確定不是單一本網誌會發生這樣情形

    回覆刪除
  37. <3899710853059388454>(以上內容請勿刪除,從括號之後開始留言)
    報告
    用的是 V2 沒錯啊 @__@

    回覆刪除

張貼留言注意事項:

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

TOP