︿
Top

Blogger單篇文章計數器


天氣好,空氣品質又佳的話,照片特別好拍呀

雖然Blogger後台有提供單篇文章的計數器,不過自己想放在文章上面,搜尋了很多資料,試過很多,但都失敗。

好像因為Firebase有改版關係,重新試過後竟然可以了..XD

只是計數資料當然不可能和後台的一樣,而且用這方法似乎手機是無法同步?不過還是記錄一下,或許有人也需要囉!



步驟如下:

首先要先進去Firebase(Google帳號)
https://firebase.google.com/

進入後「新增專案」


專案建立中


建立好後選「Database」,按開始使用


選Realtime Database,開始使用


以測試模式啟動


之後在左上的Project Overview選專案設定


複製專案ID,然後進Blogger後台


在後台裡編輯HTML


進編輯後要先注意一下

若沒安裝jquery的記得要先加入下面語法(Jquery Library v1.2.3或更高版本,我是用2.1.3)
<script src='//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js'/>

在想要顯示單篇文章計數器的地方輸入下面語法
<a expr:name='data:post.id'/> <i class='fa fa-eye'/> <span id='postviews'/> Views

我自己沒加入<i class='fa fa-eye'/>,這是眼睛的icon

然後再編輯語法下面,或按ctrl + f搜尋</body>,再</body>上面輸入底下語法
<script src='https://cdn.firebase.com/v0/firebase.js' type='text/javascript'/> 
<script> 
$.each($(&#39;a[name]&#39;), function(i, e) { 
var elem = $(e).parent().find(&#39;#postviews&#39;); 
var blogStats = new Firebase(&quot;https://YOUR-APP-NAME.firebaseio.com/pages/id/&quot; + $(e).attr(&#39;name&#39;)); 
blogStats.once(&#39;value&#39;, function(snapshot) { 
var data = snapshot.val(); 
var isnew = false; 
if(data == null) { 
data= {}; 
data.value = 0; 
data.url = window.location.href; 
data.id = $(e).attr(&#39;name&#39;); 
isnew = true; 
} 
elem.text(data.value); 
data.value++; 
if(window.location.pathname!=&#39;/&#39;) 
{ 
if(isnew) 
blogStats.set(data); 
else 
blogStats.child(&#39;value&#39;).set(data.value); 
} 
}); 
}); 
</script>

然後要將「YOUR-APP-NAME」改成自己的專案ID,就完成了

如下圖,可以顯示單篇文章瀏覽次數(19 Views)

37 則留言: Leave Your Comments

  1. 您好您好!
    我試者安裝了您提供的方法!
    但前台指顯示 view 沒有顯示數字 這樣是要等時間搜集嗎?

    回覆刪除
    回覆
    1. Hello 您好

      安裝的時候不用等待時間..可以先用預覽看一下是否有顯示??
      不知道是否能提供一下安裝資訊的畫面,不然可能不知道問題出在哪?

      刪除
    2. 安裝資訊在這張
      https://ppt.cc/fOax2x
      顯示位置是這張
      https://ppt.cc/fCN2Rx
      jquery裝過了版本2.1.3前面呼叫過我就沒有再貼一次
      顯示長這樣
      https://ppt.cc/f5Q2Ox

      刪除
    3. HiHi

      抱歉抱歉…
      我回頭看一下我最後貼語法的位置,忘了加上</body>(剛補上)
      最後那程式要貼到</body>前面...

      如果還是不行的話,那我就真的不清楚原因了... >"<

      刪除
    4. HIHI!

      感謝,現在是出來了!但數字都是零。
      至少有顯示個零哈哈哈
      但為什麼都是零好像又要研究一下OTZ

      刪除
    5. 啊我發現了他好像會是從我成功建立後,開始計算!
      那太好了!沒有問題了!!!

      刪除
    6. 那真的是太恭喜你囉.. >"<b

      刪除
  2. 你好,我也是使用blogspot
    看到你貼在網誌上的照片是.jpg檔,畫質相當清晰
    可否請版主賜教,是使用哪顆鏡頭配相機? 有如此美圖

    回覆刪除
    回覆
    1. HiHi

      如果是這篇文章的第一張照片,
      我其實是用iPhone 6S Plus拍的,剛好天氣很好,拍出來的效果就不錯囉
      其它照片我多是用Canon 5D3 + Canon 24-105(一代)拍得

      也謝謝賞圖呢.. ^^

      刪除
    2. 感謝你的回覆~
      能再請教,您使用5D3拍的照片是直接上傳到部落格?還是有將檔案縮小再傳呢?

      刪除
    3. Hello

      我先說明一下,因為上傳到google的相簿有分原始大小(15G上限)和高畫質上傳(空間無上限),
      基本上如果選擇原始大小,不管有沒有縮圖,照片都滿清晰的(除非原圖就沒縮好或拍好)

      那麼問題來了,如果用高畫質的話不管用原始大小或是縮圖都滿容易讓上傳的照片畫質變差。

      我是後來縮成1800的長邊(1600也行),然後不管用什麼軟體縮圖,一定要選擇最高品質的JPG輸出,
      如果沒選擇最高品質的,雖然照片看不出來有何差異,但只要上傳到GOOGLE相簿選高畫質的話,一定會讓畫質變差

      這是我一點小小的心得,您可以看我大約今年一月到四月左右的文章,跟五月之後的文章照片會有所差異說...

      我也是後來才體會出來的,不然之前我都是縮到長邊900,然後選原始大小上傳,但會減少空間。

      刪除
  3. 感謝你的回覆,平常我都是直接寫文章時,點選圖片,上傳照片的
    下次寫文章時來試試看

    回覆刪除
  4. 不好意思,我也是使用blogger,想請教jquery這個語法該放到哪個位置?
    顯示位置想跟你一樣放在日期後面的話又該放哪裡呢?其他部分沒有問題
    新手問題有點笨,不過我已搜尋過該怎麼放還是不知道,煩請指教,謝謝您^^

    回覆刪除
    回覆
    1. jquery可以放在< head >之後就行囉..

      至於要放在日期後面的話,因為每個板型不同..
      或許可以找一下和data:top.showTimestamp相關的(顯示日期)
      或是data:post.labels (標籤) 或是 data:label.name (google id)有關的
      因為我的計數器是放在data:label.name 或是 data:post.labels
      這一排(我的計數器前有姓名、日期、標籤、計數器)
      可以看一下你想放的位置除了日期還有什麼囉?

      刪除
    2. 您好,我是用Emporio這個主題
      我用您提供的顯示日期關鍵字下去搜尋並無完全相同的
      使用timestamp有許多個,其中有一個我知道是留言的,但該將此計數器放置何處還是沒有頭緒
      感謝您回覆

      刪除
    3. 因為我沒試過這Emporio的主題,
      不知道是否有網址可供參考呢??

      刪除
  5. 你好,不知道那是否有可以記錄當日人氣的語法呢? 謝謝

    回覆刪除
    回覆
    1. Hello

      說實話,我自己也不知道呢!!@@
      我也試著Google搜尋過,但也沒找到..Orz
      或許可以到 https://blogger.wfublog.com/ 去發問看看呦..
      站長他本身是專研blogger的高手,應該可以說是最專業的Blogger中文網站
      他個人網誌:https://www.wfublog.com/

      刪除
    2. 謝謝你 我知道他喔~
      你這個單篇文章感覺很不錯呢~
      有機會我也要在網誌上放這個^^

      刪除
  6. 請問這個語法
    jquery
    要放在哪邊

    回覆刪除
    回覆
    1. hihi...

      jquery可以放在< head >之後就行了喔

      刪除
  7. 圖案顯示出來但沒有數量

    回覆刪除
    回覆
    1. 或許是有個步驟錯了??

      刪除
    2. 哈囉!有遇到跟你一樣問題,後來發現是自己漏掉「Database]那些的設定,
      只要按照版主的內容設定好,數字就跑出來了!可以試試~

      刪除
  8. 版大您好,我是部落格新手,但我照著上面設定操作了,結果完全沒有顯示圖案,我有做以下這些動作
    1.有把jquery可以放在< head >之後
    2.有搜尋data:top.showTimestamp,並把語法放在後面<a expr:name=.....
    3.唯一發現不同的是,專案建立的時候,有一些畫面跟版大上面的畫面不太一樣

    回覆刪除
    回覆
    1. Hello

      新的專案介面我目前沒有去重新看過,
      如果介面不一樣的話,只要內容設定一樣應該還是可以,但步驟不能漏掉就ok
      看是否先檢查一下有步驟漏掉嗎?

      刪除
  9. 感謝大大!
    我自己看國外網站試了好幾次都沒有成功,這次終於成功了!

    回覆刪除
    回覆
    1. 還有要同步可以先點所有文章,再 firebase 人工改資料

      刪除
    2. Hello
      還沒試過同步,感謝您的分享喔..我找時間來試一下..

      刪除
  10. 您好,

    非常感謝您的分享, 按照您的方法, 我們也成功的加上了單篇文章計數器.

    鑑於很難找到專門收錄中文部落格的網站, 於是在幾個月前決定建立一個專門收錄中文的部落格聯播網.

    希望您不介意我把您的這樣的優質網站加到我們新成立的"中文部落格收錄聯播網"。

    如果您不願意,請來信告知,一定儘快拿下。

    如果您不反對,也請您移駕本站,看看我們對您網站的描述和分類有沒有什麼可以添加和修改的地方,一定馬上修正。謝謝。
    https://chineseblogdirectory.blogspot.com/2020/01/bcsyddonxu.html

    回覆刪除
    回覆
    1. HiHi..

      現在真的不像約十年前部落格這麼發達,所以很感謝您們的收錄喔...

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

    回覆刪除
  12. 手機也可以同步,謝謝您的分享
    https://cclccl-life.blogspot.com

    回覆刪除
    回覆
    1. Hello 阿樂

      感謝呦..我也來看看怎麼手機同步..

      刪除



創用 CC 授權條款
本著作係採用創用 CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款授權.