我一直負責在Tumblr博客中添加「最流行」功能。從本質上講,當最受歡迎的按鈕被點擊時,我需要顯示一個單獨的帖子或一個帖子列表,它們的受歡迎程度排序。受歡迎程度將根據該帖子「筆記」的數量計算。顯示Tumblr博客上最熱門的帖子
有沒有人有關於這方面的最佳途徑的建議?我在http://www.tumblr.com/docs/en/custom_themes#search找不到任何烘焙到他們的主題定製中的東西。去API路線是完成這樣的唯一途徑嗎?
我一直負責在Tumblr博客中添加「最流行」功能。從本質上講,當最受歡迎的按鈕被點擊時,我需要顯示一個單獨的帖子或一個帖子列表,它們的受歡迎程度排序。受歡迎程度將根據該帖子「筆記」的數量計算。顯示Tumblr博客上最熱門的帖子
有沒有人有關於這方面的最佳途徑的建議?我在http://www.tumblr.com/docs/en/custom_themes#search找不到任何烘焙到他們的主題定製中的東西。去API路線是完成這樣的唯一途徑嗎?
那麼,我並不是Tumblr的專家,但是我正在爲我正在開發的一個項目與API合作。從我的經驗看來,你需要一個API來獲得全部的帖子記數。使用我知道的主題來訂購頁面上顯示的帖子而不使用API密鑰,但要走得更遠,您必須使用javascript插件或僅使用Tumblr API(這非常容易使用)
從我只是花了很短的時間思考這個問題,你可以在每個帖子上放置一個NoteCount
(用CSS隱藏或不用;直到你),然後使用API的notes_info
獲得所有這些數字並進行比較。然後,您可以在數組中存儲您希望的多少帖子(根據筆記數量),並在您想要的頁面上使用該數組。這似乎是一個大量的工作,但我不知道你能怎麼回事做到這一點
編輯
調查這個問題有點後,我發現張數是遠從一貫的特點tumblr。沒有一個班級全部記錄數量,也沒有一個一致的文字。看起來你必須在個人博客的基礎上做到這一點。一旦你獲得職位的HTML,通過腳本或API,你可以運行類似如下的功能,它使用正則表達式來檢測,其中張數
var posts = document.querySelectorAll('.post'), // Get all posts (*most* blogs have this, not all)
noteExpr = /with ([0-9]+) notes/, // Get any numbers between "with " and " notes"
noteCounts = [];
// Creates an array filled with all of the note counts
for(var i = 0; i < posts.length; i++) {
noteCounts.push(noteExpr.exec(posts[i].innerHTML)[1]);
}
// Do something with noteCounts
Demo,使用文章我最喜歡的一個博客MotionAddicts
使用的網站我看一些例子:
對於<a href="noteCountUrl.com">58 notes</a>
使用/>([^>]+) notes/
對於<div class="notecount">Notes: 218</div>
使用/Notes\: ([^>]+)</
缺點是這必須定製每個博客,如果他們的格式各不相同,但它是我所知道的唯一的方式如何不使用的API,即使這樣我不肯定有一個更好的辦法
其他信息:
Studiomoh也有類似的插件,但它僅適用於圖片