显示汤博乐博客上最受欢迎的帖子



我的任务是为汤博乐博客添加"最受欢迎"功能。从本质上讲,当点击"最受欢迎"按钮时,我需要显示一篇帖子或一系列帖子,按其受欢迎程度排序。受欢迎程度将根据帖子的"笔记"数量进行计算。

有人对此有什么建议吗?我在他们的主题定制中找不到任何东西http://www.tumblr.com/docs/en/custom_themes#search.走API路线是实现这一目标的唯一途径吗?

嗯,我不是Tumblr的专家,但我已经为我正在开发的项目与API进行了相当多的合作。根据我的经验,你似乎需要一个API来获得所有的帖子注释计数。使用我知道的主题,在没有API密钥的情况下订购页面上显示的帖子,但要更进一步,你必须使用javascript插件,或者只使用Tumblr API(它非常容易使用)

从我花在思考这个问题上的短暂时间来看,你可以在你的每个帖子上放一个NoteCount(是否用CSS隐藏;取决于你),然后使用API的notes_info来获得所有这些数字并进行比较。然后,你可以在一个数组中存储你想要的帖子数量(根据笔记计数),并在你想要的页面上使用该数组。这看起来工作量很大,但我不确定你还能怎么做

编辑

在对这个问题进行了一点调查后,我发现汤博乐上的音符计数功能远非一致。没有一个类是所有笔记计数共享的,它周围的文本也不一致。看来你必须在个人博客的基础上做这件事。一旦您通过脚本或API获得了帖子的HTML,您就可以运行类似于下面的函数,该函数使用regex来检测音符计数的位置

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

演示,使用我最喜欢的博客之一MotionAddicts 中的帖子

我看到的更多使用网站的例子:

对于<a href="noteCountUrl.com">58 notes</a>,使用/>([^>]+) notes/

对于<div class="notecount">Notes: 218</div>,使用/Notes: ([^>]+)</

缺点是,如果每个博客的格式不同,则必须对其进行自定义,但这是我知道如何在不使用API的情况下进行自定义的唯一方法,即使这样,我也不确定是否有更好的方法

其他信息:

Studiomoh有一个类似的插件,但它只适用于图片

如何包含NoteCount 的示例

没有钞票时如何包括钞票计数

最新更新