Ứng dụng của thủ thuật Random Posts : Tạo widget bài viết ngẫu nhiên từ 1 nhãn nhất định

Người đăng: yeu mai em on Chủ Nhật, 17 tháng 5, 2009

Random Posts from a label
[FD's BlOg] - Đây là một thủ thuật hòan tòan tương tự với thủ thuật tạo các bài viết ngẫu nhiên cho blog, chỉ khác là mở rộng riêng cho từng nhãn. Nếu blog bạn có một đề tài, chuyên mục nào đó nổi bật, bạn có thể tạo 1 widget random các bài viết từ nhãn (chuyên mục đó).


Ví dụ như ở blog của mình, mình có thể tạo một widget hiển thị các bài viết ngẫu nhiên của nhãn "Thủ Thuật Blog", xem hình minh họa bên dưới:


Để thực hiện, bạn chỉ cần tạo 1 widget HTML/Javascript rồi dán code bên dưới vào:

<div id="random-posts"></div>
<script type="text/javascript">

function getRandomPosts(json) {
var maxEntries = 10;
var numPosts = json.feed.openSearch$totalResults.$t;
var indexPosts = new Array();
for (var i = 0; i < numPosts; ++i) {
indexPosts[i] = i;
}
indexPosts.sort(function() {return 0.5 - Math.random()});
if (maxEntries > numPosts) {
maxEntries = numPosts;
}
var container = document.getElementById('random-posts');
var ul = document.createElement('ul');
for (i = 0; i < maxEntries; ++i) {
var entry = json.feed.entry[indexPosts[i]];
var li = document.createElement('li');
var a = document.createElement('a');
a.title = entry.title.$t;
for (var j = 0; j < entry.link.length; ++j) {
if (entry.link[j].rel == 'alternate') {
a.href = entry.link[j].href;
break;
}
}
a.appendChild(document.createTextNode(entry.title.$t));
li.appendChild(a);
ul.appendChild(li);
}
container.appendChild(ul);
}

</script>
<script src="/feeds/posts/summary/-/blog?alt=json-in-script&callback=getRandomPosts&max-results=999999" type="text/javascript"></script>

- Chú ý :

+ var maxEntries = 10; : dòng này để thiết lập số bài viết sẽ hiển thị
+ /feeds/posts/summary/-/blog : thay code màu đỏ bằng nhãn bạn muốn hiển thị (lưu ý, các nhãn có kí tự khỏang trắng phải thay thế kí tự khỏang trắng bằng %20)


- Save widget lại là xong.

Chúc các bạn thành công.

{ 0 nhận xét... read them below or add one }

Đăng nhận xét