我正在使用由Bandit Design(http://blog.bandit.co.nz/post/87511743/tumblr-featured-posts-javascript-plugin)创建的精选帖子插件,我想将特色帖子列表中的文字帖子中的图片包含在内(实际上只是一个帖子,如果你想知道的话,在它下面的帖子标题的图像)。问题是Tumblr API不包含文本帖子中的照片参数(你可以调用帖子的整个主体,但这在这里并不理想)。我的Javascript知识的深度可以被描述为“足以让事情变得有效,但更可能只是破坏事物”,因此解决方案在这里可能相当明显,我只是错过了它。
我现在的代码:
/*
TUMBLR FEATURED POSTS SCRIPT
Automatically gets all posts tagged with "featured" and lists them
REQUIRES JQUERY!
--------------------------------------
Created by james <at> bandit.co.nz
http://blog.bandit.co.nz
Some code borrowed from Jacob DeHart's AJAX Search:
http://blog.bandit.co.nz/post/80415548/tumblr-ajax-inline-search
*/
Featured = {
'apiNum' : 50, // how many posts to read
'listId' : '_featured', // the id of the ul to write to
'tagName' : '_featured', // the name of the tag we're searching for
'linkAppend' : '', // html to append to the end of each linked post
'postDB' : [],
'listPos' : 0,
'doList' : function (where) {
var li; var ul = $('#'+where);
var titles = {"link":"link-text", "photo":"photo-caption", "quote":"quote-text", "regular":"regular-title", "video":"video-caption"}
// cycle through post database
pcount = Featured.postDB.length;
for(i=Featured.listPos;i<pcount;i++) {
p = Featured.postDB[i];
if(p[titles[p.type]] != '') titlestr = p[titles[p.type]].replace(/<\/?[^>]+>/gi, '');
else titlestr = p['url'];
li = document.createElement('li');
$(li).html('<a class="'+p.type+'" href="'+p["url-with-slug"]+'">'+p["regular-body"]+titlestr+Featured.linkAppend+'</a>');
ul.append(li);
Featured.listPos = pcount;
}
},
'getData' : function() {
$.get('/api/read/json?num='+Featured.apiNum+'&tagged='+Featured.tagName,
function(data) {
eval(data);
for(i=0;i<tumblr_api_read.posts.length;i++) {
Featured.postDB.push(tumblr_api_read.posts[i]);
Featured.doList(Featured.listId);
}
}
);
}
};
$(document).ready(function(){
Featured.getData();
});
非常感谢任何帮助。
答案 0 :(得分:1)
您可以将创建li
的行更改为
$(li).append($(p['regular-body']).find('img')[0])
.append('<a class="'+p.type+'" href="'+p["url-with-slug"]+'">'+titlestr+Featured.linkAppend+'</a>');
这将找到帖子正文的第一张图片,并将其添加到列表中的标题之前。