2014年11月10日

[小工具]Blogger 數字分頁導覽 + Ajax 動態頁面載入效果

[小工具]Blogger 數字分頁導覽 + Ajax 動態頁面載入效果

Wayne Fu 0 A+
網站使用數字分頁功能,來方便訪客跳頁尋找、閱讀文章,這是各大網站很常見的設計。但 WFU BLOG 一直以來未採用,原因有二:

1. 如果不瞭解 Blogger 的機制,裝了這樣的外掛一定抱怨連連,請參考「Blogger官方自動分頁機制」,分頁的狀況常常會不如預期。

2. 本站屬於「資訊提供」的性質,訪客有七成來自搜尋引擎,主要目的為尋求問題的解答,平均停留頁數少,比不上旅遊、美食、心情抒發、插畫等等諸多類型的網站,訪客比較有輕鬆的心情進行跳頁式的閒逛。

不過最近一個案子需要分頁功能,且相信很多網站還是需要數字分頁的導覽效果,因此發佈此項研究成果。另外這個小工具能在跳頁時,頁面使用 Ajax 動態載入,算是獨家功能。以下先進行功能介紹,想直接安裝請跳至「二、準備動作」。





一、分頁歷史與功能介紹


1. 歷史

找資料的過程才發現,原來 Blogger 分頁功能的歷史還滿精彩的,有不少掠奪著作權的進程,對故事有興趣可參考「FreeTong DIY」這篇介紹。

另外曾在「為何部落格最好避免第三方外掛?」→「六、程式有問題」→「2. 程式有木馬」提醒過讀者,現在發現這篇「《姆奈》MKnight」的第一則外國人留言,就是那個被 Google 查封的著名分頁功能作者。

這個外國作者其網站當初算是最大宗的 "Blogger 分頁工具" 輸出地,現在已經被標示為「惡意軟體網站」,只能再次提醒讀者,隨意找網路上的程式安裝到自己部落格,不小心就會替自己埋未爆彈。


2. 基本功能

分頁功能的演算法還滿瑣碎的,不得不感謝前人已經造好輪子,WFU 的工作就是把交通工具美化就好。本篇採用的程式碼出自「Helplogger」,這個版本比其他分頁工具好的地方有:
  • 部落格文章沒有 500 篇的限制
  • 不需讀取整個部落格的文章來載入、速度較快
  • 標籤頁面也能執行


3. 改造功能

因已習慣「Javascript 設計模式」的撰寫模式,將原始碼修改甚多,也增加新的功能,大致如下:
  • 程式碼全部動態執行、不拖慢網頁執行速度
  • 跳頁不必重新整理頁面,採 ajax 動態載入 → 讀者可以感受一下 "光速載入" 的效果,對訪客是非常友善的閱覽體驗
  • 原版本若要讓標籤頁面也能執行分頁功能,必須手動修改 Blogger 範本各處相關程式碼,此版本由程式自動執行。
  • 刪除全域變數及不必要的程式碼




二、準備動作


1. jQuery

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

請到後台「範本」→「編輯 HTML」,搜尋 </head> 這個字串,找到後在此字串的前一行,插入以下程式碼:

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js'></script>
<style>
/* 數字分頁 */
#blog-pager{
clear:both;
margin:30px auto;
text-align:center;
padding: 7px;
}
.blog-pager {
background: none;
}
#blog-pager > span {
margin-bottom: 10px;
}
.displaypageNum a,.showpage a,.pagecurrent{
display: inline-block;
font-size: 14px;
padding: 5px 12px;
margin-right:5px;
color: #666;
background-color:#eee;
}
.displaypageNum a:hover,.showpage a:hover, .pagecurrent{
background:#359BED;
text-decoration:none;
color: #fff;
}
#blog-pager .pagecurrent{
font-weight:bold;
color: #fff;
background:#359BED;
}
.showPageOf{
display:none!important
}
#blog-pager .pages{
border:none;
}
</style>

第一行可參考「引用 jQuery 的注意事項」,檢查範本是否已安裝過 jquery,以免重複安裝。


2. CSS 樣式

以上 style 區間的 CSS 樣式除了可自行修改,原作者也提供了多種樣式,如下圖:



可參考原文網站「Helplogger」來自行置換 CSS 樣式的程式碼。而如果熟悉 CSS 的話,其實色碼自己改一改就行了。


3. 注意事項

正式安裝之前仍有兩件事項需要注意:

  • 這個工具必須讀取部落格的 feed,因此公開的部落格才能正常執行,請檢查後台 → 設定 → 其他 → 允許網誌資訊提供 → 是否為「完整」
  • 後台設定每頁顯示的文章數,必須與小工具的設定一致,請檢查後台 → 設定 → 文章和留言 → 最多顯示 → 這裡的數字請與小工具的參數吻合。



三、安裝程式碼


接著請搜尋 </body> 這個字串,找到後在此字串的前一行,插入以下程式碼:


以下參數修改請參照以上程式碼行號:

D:紅色參數代表每頁顯示的文章數,請跟「二、準備動作」→「3. 注意事項」後台設定的數字一致。

E:紅色參數代表換頁數字按鈕要顯示的數量,若實際的頁數超過設定的數字時,會自動隱藏。

2015.1.13 新增: F 行紅色參數 "Y" 代表頁面使用動態載入,若不使用動態載入請改成 "N"。

G~J:字串可改為中文,例如 "第一頁"、"最後一頁"、"前一頁"、"下一頁"。

L:由於「Google Drive 關閉外連」功能,綠色字串的 JS 網址是無法外連的,請參照「WFU BLOG 外連 JS 變更及操作說明」,將這個連結下載後存成 JS 檔,上傳到自己的空間或 Dropbox。取得自己的 JS 檔外連後,置換本行的綠色網址字串。


存檔後即可,想先看效果請前往範例網站:




四、常見 FAQ


目前在官方範本測試,執行上應該沒問題,如有問題建議先檢查前面提到的注意事項。如有其他問題,之後再以 FAQ 的形式回答補充。

Q1: 留言 #22 詢問「為何有些文章在分頁上會不見 例如我每頁有7篇文章 但我首頁只有3篇 到了第二頁另外4篇也沒有出現?」

Ans: 請參考「Blogger 首頁文章怎麼消失了?」,檢查是否每篇文章都設定了「繼續閱讀」。並請檢查「二、準備動作」→「3. 注意事項」。


更多實用工具:
0 0
如這篇文章對你有幫助,歡迎「分享」到 FB、「追蹤」粉絲團、「訂閱」最新文章

46 則留言:

  1. 切換速度真的好快!!感謝分享喔!!
    不過,對於行動版範本使用自訂,似乎不能執行,應加入判斷式將其設定只在電腦版執行?

    回覆刪除
    回覆
    1. ㄏㄏ 這個我了解(我問過太多次了= =哈哈)只是剛剛安裝後發現行動版可能需要加入判斷式。

      您所說的原始版本是指將您提供的程式碼當中的js換成您所說的pageNav-source.js這組嗎??

      刪除
    2. 哈哈~~原來是誤會一場。不過就以上一篇"jQuery 圖片輪播外掛__camera 安裝及使用詳解"我所發問的就知道我英文程度跟語法程度還不到家= =(舉離幾百里遠)
      不過讀您的文章一段時間了,加判斷式我行的^^呵呵
      再次謝謝你喔!!目前先用判斷式!!

      刪除
    3. 不好意思,如您前面所說的"弄個參數,選擇是否動態載入"
      那是不是就可以使用另外一種判斷式,讓行動版不使用動態載入呢??
      (...........)期待^^

      刪除
    4. 不支持手机版真的太不便利了!

      刪除
  2. 有些顏色的按鈕看起來真漂亮

    回覆刪除
  3. 當初的確是Mr.J先寫出來的
    有很多當年很厲害的大大們都不寫Blogger了

    回覆刪除
  4. Dream Talker 首頁原本使用 Ajax 追加卡片式文章摘要,方便觸控式螢幕使用。但後來我發現我的讀者很少人在網頁版使用觸控式螢幕,所以改裝成分頁式,算是倒退復古風吧!XD

    回覆刪除
    回覆
    1. 我都忘了萬聖節版,記性真差!哈哈!

      刪除
  5. 我也裝好了,預設色調剛好很符合我的版型就不改了^^

    回覆刪除
  6. 裝了之後實際測試真是超棒的
    感謝大大辛苦結晶

    回覆刪除
  7. 版主您好,不好意思又來打擾您

    我想請教我在我的部落格使用分頁後,當我跳頁至下頁時,原來另外安裝的FB按讚按鈕和Twitter按鈕即不再顯示,這是不是我安裝的按鈕和分頁語法有衝突呢?

    http://choroni-chies.blogspot.com/

    回覆刪除
  8. 剛剛發現在切換分頁時,我的單篇文章計數器會不見(第一頁首頁不會,第二頁以上開始就會不見)請問一下這能解決嗎??謝謝

    回覆刪除
    回覆
    1. 原來是這個原因= =不過,相較之下,動態載入的速度還是重於其他功能,不然,數字分頁似乎就變成一個樣式而已,對於網頁載入無實質上幫助

      刪除
    2. Wayne您好:回報一個問題!一旦取消動態載入,點到其他頁後再點"Previous"到前一頁時會出錯喔!

      刪除
    3. 原來如此!謝謝您!

      刪除
  9. Wayne您好:
    我是在PTT上提問有關數字分頁變成直向顯示的chingjuwu,不瞞您說我在問題中提到有爬文試了兩、三種教學方法,其中之一就是您的這篇文章。我也去過您提供的原文連結去下載其它樣式的分頁,但不管哪一種,都一樣變成直向顯示,所以我暫時把相關語法移除了,不論如何,還是非常感謝您的回覆,謝謝。

    回覆刪除
  10. 謝謝您如此詳細的教學,請問我照著操作後,分頁有正常顯示,但在分頁下出現一排字"Ajax Page Navigation"我應該如何移除呢?謝謝

    回覆刪除
  11. 非常非常抱歉,恕我無知不知這是版權聲明,我不會也沒能力更動,再次感謝!

    回覆刪除
  12. WFU大大您好:

    小弟從您的網站學到了很多(其實是複製貼上)
    想請問您提供的程式碼 L行
    如果直接使用您的空間是否會出現問題
    (目前測試狀況良好0.0
    附上在HTML使用的網址
    https://docs.google.com/uc?authuser=0&id=0BykclfTTti-0N2lmRUxMZ3dRbDA&export=download

    謝謝

    回覆刪除
  13. 我跟著步驟做了 但我的blogger還是沒變化呢 ..
    是什麼問題呢? QwQ 感謝

    回覆刪除
  14. 先感謝版大的提醒,官方分享列那邊的問題,在用語法讓行動版不顯示幾個會衝突的分享按鈕搞定了。
    這邊回報下,這個新版的分頁語法的動態顯示真的挺不錯!速度很快。
    但用在行動版就會失效導致不能正常分頁,把動態顯示關閉才能正常運行。
    所以後來想想,我乾脆把這功能在行動版隱藏了,改用Blogger官方的版本。
    因為要如何在行動版關閉動態顯示,網路版開啟動態顯示,我還不會...@-@

    回覆刪除
  15. 您好,感謝您的工具,個人的網誌終於可以使用分頁。
    但亂按了一陣子,出現了一個怪現象:
    一開始首頁的分頁工具顯示無誤,點擊其它頁也可以翻頁,
    但點回「第一頁」或「1」時,
    分頁工具會消失...?
    但有時點回第一頁、分頁工具又不會消失?
    個人有停用動態載入,改了一點CSS。
    不知道是否哪裡弄錯了....?
    試了半天也不明白問題,只好冒昧請教格主。
    感謝!

    回覆刪除
    回覆
    1. 謝謝您,
      個人之前有想用blogger帳號留言,
      但很奇怪,選擇用「Google帳號留言」,按「發佈」後,只有閃一下,留言無法發出。
      只好選用網址和名稱回應。
      後來發現連在自己的 Blogger 也是這樣,無法回應訪客留言。
      Google 找答案,發現要在 內容設定→Cookies中
      把[*.]www.blogger.com加入允許名單?
      不知為什麼?
      因為以前好像回應沒這問題...。

      刪除
    2. 謝謝您,
      個人也不甚清楚,
      因為個人使用瀏覽器的習慣是
      每次關閉前都清空 cookie、記錄、暫存...等等。
      反正目前可以用,個人就先這麼用吧!
      (在windows 10那臺有此問題,但在 Windows 7 這臺就不會...@@)

      刪除
    3. 呼!剛才您的網站進不了!個人以為發生什麼事了!
      (全都顯示為 404,換瀏覽器也不行...)
      個人立刻試了新的JS,但似乎沒有效果...。
      出問題的時候,上方的網址會變得很怪,
      像是:
      首頁網址/search?updated-max=2017-11-19T00%3A00%3A00%2B08%3A00&max-results=10#PageNo=/
      不只是分頁效果無法出現,連原先新舊文章的按鈕也不見了...。
      如果把後面那串刪除就又能正常顯示。
      個人是有點好奇為什麼有這問題?,
      因為若別人用都沒事,那可能就是個人的網誌有什麼問題吧...。
      (會是個人網誌放了什麼影響到嗎?真是抱歉!)
      若實在不行,個人就放棄分頁也沒關係的。
      因為覺得有分類已經很夠用了。
      很感謝您還幫忙找問題。
      謝謝您!

      刪除
    4. 謝謝您的回應。
      個人試了無痕仍然不行。
      但想說您說可以,
      個人就又在 Edge 上試,卻是OK的。
      後來看到 Chrome 網址列右方有個小圖,說「無法為此網頁設定Cookie」
      在設置中將網址加到允許就可以了...@@。
      不知之前分頁不能顯示會不會也和這有關?
      (之前登入狀態不顯示的問題也是...)
      是不是該把 Chrome 某些設置改掉呢...。
      (目前的設定會封鎖所有第三方的cookie)
      謝謝!

      刪除
    5. 真的很感謝您!
      不過,後來多按幾次,又開始有一樣的問題...。
      (按到其它頁→第一頁→其它頁→第一頁...,就是第一頁會有問題)
      一旦開始有問題,之後再按就都不太能成功。
      允許了第三方cookie也一樣。
      (右上方有個小圖:這個網頁正在嘗試載入未經驗證的指令碼?網誌的第一篇文章會不見)
      用 Edge 比較好,目前還沒問題的樣子...。
      可能個人的哪個設定有問題吧...。
      不過,一般人是比較不會這樣按,所以也還好。
      不太好意思一再麻煩您,因為也不太明白問題所在...。
      很謝謝您!

      刪除
  16. 謝謝您!
    其實,Edge 偶爾也會如此,但頻率比較低...。
    不過,個人是有點不太想試了...,
    因為後來覺得好像沒分頁也不是很難用...。
    有分類真的足夠了,因為沒人知道第X頁有啥文章。
    不如搜尋和分類更實用。
    SO,也許過陣子會把分頁代碼清掉吧(清掉就可以移除了吧?)...。
    倒是想再看看文章加密隱藏的問題。
    過幾天來試試。
    謝謝您的幫助!

    回覆刪除
  17. 版主您好,感謝您提供的教學,但我照上面方法後卻一直無法出現分頁,都還是出現舊的文章,後來將版面整個換到原始未動的版面,再上語法還是沒辦法,請問能幫我看看嗎?感謝您 https://lsimpression.blogspot.tw/

    回覆刪除
  18. 版主您好,已經重新裝回去了,能再請您幫忙看看嗎?感謝您!!!!https://lsimpression.blogspot.tw/

    回覆刪除
  19. 請問分頁最前面的「Page 1 of N」這個要怎麼拿掉?
    謝謝

    回覆刪除
    回覆
    1. https://lh3.googleusercontent.com/-fCQpReTDXw4/W8VVQM0qkVI/AAAAAAAAXxM/nYfPIZPj5mcdPVbT5U3ppih8ZhfNYS0BwCHMYCw/cats.jpg
      您好,是用本篇的工具喔
      看demo頁面沒有,我也覺得很奇怪...

      刪除
  20. 版主你好,你的文章很棒
    我目前遇到一個問題
    就是我自己會使用國外的版型
    但是他們的分頁系統感覺怪怪的 有些文章在分頁上會不見
    例如我每頁有7篇文章 但我首頁只有3篇
    到了第二頁另外4篇也沒有出現

    然後我改成版主的分頁語法
    也是一樣的情況

    回覆刪除
  21. 鬼佬发明的东西都是这特性,要摸索很久才能真正会用
    什么chrome ,firefox,还有这个blogger虽然自由度很高,可以自定义
    但是大多数人不是专业IT人员,哪经得起这么摆弄。Chrome还可以还原
    blogger我在html改来改去,已经改的面目全非,改崩溃了,版面上漏洞百出,还不知道怎么还原
    blogger就不能设定一些基本的功能,然后再自定义吗?

    回覆刪除
  22. 版主我还有个问题,请问怎么改回原来的html
    我不懂IT,按照好多教程把html改崩溃了,
    比如我正面的有些文章下有2个“read more”
    另有这个毛病,home page的文章只显示少数文字+“read more”,但是catalogue下的文章则只显示文章标题

    回覆刪除
  23. WFU您好!我在安裝此程式後發現:我在第一頁出現過的內容會在第二頁重複顯示,請問這是甚麼原因呢?再麻煩您了,謝謝

    回覆刪除
    回覆
    1. 抱歉再次打擾,我的狀況似乎與FAQ的問題不太一樣,我的狀況是我有9篇文章,設定每一分頁顯示5篇(也就是您上方提供的程式碼的設定,沒有更動),假設我將文章命名為一~九好了,那麼我的第一個分頁會顯示一到九,而第二個分頁會顯示六到九(意即六、七、八、九,共四篇會重複出現)。
      再麻煩您了,感恩🙏

      刪除
    2. 不好意思再次麻煩您,我在我的文章都加上了[!--more--]的標記,但是問題依舊存在,沒有改變……
      再麻煩您了,謝謝

      刪除
    3. 非常抱歉,我的網址在這裡:https://grizzlybrblog.blogspot.com/
      還請您協助看一下,謝謝

      刪除
    4. 非常抱歉造成您的麻煩,已經處理好了,感謝您

      刪除
  24. 动态加载一直提示正在加载 https://blog.xiaoioi.top/

    回覆刪除
    回覆
    1. 看了你的網站 使用的是官方RWD範本 請見下方留言注意事項「若是使用官方 RWD 範本...不建議對範本進行修改!」

      刪除

張貼留言注意事項:

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

TOP