Tiện ích Recent Posts dành cho blogspot ves 1
Recent Posts là tiện ích giúp hiển thị những bài viết mới nhất theo từng trương mục hoặc cho toàn bộ Blog. Đây là tiện ích được sử dụng rất phổ biến trên các WebBlog nhằm “hô biến” giao diện đơn giản thuần túy của Blogspot thành giao diện mang phong cách báo chí (Magazine Template), giúp Blog bạn trở nên “Pro” hơn trong mắt độc giả.
Tuy nhiên, việc ứng dụng nó cũng gây ra một số “tác dụng phụ” như : ảnh hưởng đến tốc độ load Blog, không tốt cho SEO,…do phải sử dụng JavaScript để lấy dữ liệu từ nguồn cấp Feed. Vì vậy, bạn hãy suy nghĩ thật kỹ trước khi áp dụng nó cho Blog của mình.
Và bắt đầu từ bài viết này, namkna sẽ giới thiệu đến các bạn một số Style để các bạn lựa chọn.
Tiện ích Recent Posts dành cho blogspot ves 1
☼ Cách tiến hành:
1- Đăng nhập vào Blog
2- Vào Bố cục (Lauout)
3- Chọn Thêm tiện ích (Add widget) => Tạo một widget HTML\JavaScript và dán vào đoạn code bên dưới :
<style type="text/css">
#namkna-rc {width:300px;margin:0;padding:10px;overflow:hidden;border:1px solid #ccc;background:#fff}
.namkna-rc h2{background:#39c;color:#fff;line-height:1.6em;margin:0 0 10px;padding:4px 10px;font-weight:bold}
.namkna-rc ul{list-style:none;margin:0;padding:0}
.namkna-rc li{text-indent:0;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhENIc7FgSa-Yi1QwFWbCpNnbnK0sU-PN1dzfUCtuwZAUNvYXe_JQByRApIppSpHayiyMxcYClX4M2uVqe_qqb6yWlXnlLQuWrpdeLotbJfTsHxDfxD6zOFwYTzj4wNlmU8YzfjqaV5WbKc/s1600/tag_blue-namkna.gif) no-repeat 0 7px;line-height:1.5em;margin:0;padding:2px 0 2px 15px}
.namkna-rc h2 a:link, .namkna-rc h2 a:visited {color:#fff}
</style>
<div id="namkna-rc" class="namkna-rc">
<h2><a href="http://namkna.blogspot.com/search/label/Blogspot-tips?&amp;max-results=5">Thủ thuật blog</a></h2>
<script type='text/javascript'>
numposts = 5; list1 = 1; sumPosts = 168;
</script>
<script type='text/javascript'>
//<![CDATA[
function removeHtmlTag(a, b) {
    var s = a.split("<");
    for (var i = 0; i < s.length; i++) {
        if (s[i].indexOf(">") != -1) {
            s[i] = s[i].substring(s[i].indexOf(">") + 1, s[i].length)
        }
    }
    s = s.join("");
    s = s.substring(0, b - 1);
    return s
}
function showrecentposts(e) {
    img = new Array();
    for (var i = 0; i < numposts; i++) {
        var f = e.feed.entry[i];
        var g = f.title.$t;
        var h;
        if (i == e.feed.entry.length) break;
        for (var k = 0; k < f.link.length; k++) {
            if (f.link[k].rel == 'alternate') {
                h = f.link[k].href;
                break
            }
        }
        if ("content" in f) {
            var j = f.content.$t
        } else if ("summary" in f) {
            var j = f.summary.$t
        } else
        var j = "";
        s = j;
        a = s.indexOf("<img");
        b = s.indexOf("src=\"", a);
        c = s.indexOf("\"", b + 5);
        d = s.substr(b + 5, c - b - 5);
        if ((a != -1) && (b != -1) && (c != -1) && (d != "")) img[i] = d;
        var l = '<table border="0" cellpadding="0" cellspacing="0" style="margin-bottom:5px;border-bottom:double #eee"><tr><td><img width="110" height="85" src="' + img[i] + '" align="left" border="0" title="' + g + '" alt="' + g + '" style="margin:5px 10px 0 0"><a href="' + h + '"><b>' + g + '</b></a><p style="margin:0;padding:5px 0 10px">' + removeHtmlTag(j, sumPosts) + ' ...</p></td></tr></table>';
        var m = '<li><a href="' + h + '">' + g + '</a></li>';
        if ((i >= 0) && (i < list1)) {
            var n = l
        }
        if (i == list1) {
            var n = '<div class="namkna-rc"><ul>' + m
        }
        if ((i > list1) && (i < numposts - 1)) {
            var n = m
        }
        if (i == numposts - 1) {
            var n = m + '</ul></div>'
        }
        document.write(n)
    }
}
document.write("<script src=\"http://namkna.blogspot.com/feeds/posts/default/-/Blogspot-tips?max-results="+numposts+"&orderby=published&alt=json-in-script&callback=showrecentposts\"><\/script>");
//]]>
</script>
</div>
Trong đó:
  • numposts = 5; : tổng số bài viết được hiển thị
  • list1 = 1; : số bài viết hiển thị kèm ảnh thumbnail
  • sumPosts = 168; : số ký tự mô tả (summary)
  • Thay  http://namkna.blogspot.com/ thành URL địa chỉ blog của bạn.
  • Thay Blogspot-tips thành nhãn muốn hiển thị bài đăng mới nhất.
- Nếu bạn muốn hiển thị bài viết mới nhất cho cả Blog thì thay thế đoạn code sau :
document.write("<script src=\"http://namkna.blogspot.com/feeds/posts/default/-/Blogspot-tips?max-results="+numposts+"&orderby=published&alt=json-in-script&callback=showrecentposts\"><\/script>");
- Thànhđoạn code bên dưới.
document.write("<script src=\"http://namkna.blogspot.com/feeds/posts/default?max-results="+numposts+"&orderby=published&alt=json-in-script&callback=showrecentposts\"><\/script>");
5- Sau đó Lưu Mẫu Mẫu lại.

=>Update : Thêm ảnh đại diện khi bài viết không có ảnh và tùy chọn để thay đổi màu chữ tiêu đề. Để làm điều này, bạn cần thay đoạn code chính của thủ thuật bằng đoạn code bên dưới :
<style type="text/css"> 
#namkna-rc {width:260px;margin:0;padding:10px;overflow:hidden;border:1px solid #ccc;background:#fff} 
.namkna-rc h2{background:#39c;color:#fff;line-height:1.6em;margin:0 0 10px;padding:4px 10px;font-size:12px;font-weight:bold} 
.namkna-rc ul{list-style:none;margin:0;padding:0} 
.namkna-rc li{text-indent:0;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhENIc7FgSa-Yi1QwFWbCpNnbnK0sU-PN1dzfUCtuwZAUNvYXe_JQByRApIppSpHayiyMxcYClX4M2uVqe_qqb6yWlXnlLQuWrpdeLotbJfTsHxDfxD6zOFwYTzj4wNlmU8YzfjqaV5WbKc/s1600/tag_blue-namkna.gif) no-repeat 0 7px;line-height:1.5em;margin:0;padding:2px 0 2px 15px} 
.namkna-rc h2 a:link, .namkna-rc h2 a:visited {color:#fff} 
</style>
<div id="namkna-rc" class="namkna-rc"> 
<h2><a href="http://namkna.blogspot.com/search/label/Blogspot-tips?&amp;max-results=5">Thủ thuật blog</a></h2> 
<script type='text/javascript'> 
numposts = 5; 
list1 = 1; 
sumPosts = 168; 
maintitle = "#f0c";
subtitle = "#39c";
</script> 
<script type='text/javascript'> 
//<![CDATA[ 
function removeHtmlTag(a, b) { 
    var s = a.split("<"); 
    for (var i = 0; i < s.length; i++) { 
        if (s[i].indexOf(">") != -1) { 
            s[i] = s[i].substring(s[i].indexOf(">") + 1, s[i].length) 
        } 
    } 
    s = s.join(""); 
    s = s.substring(0, b - 1); 
    return s 
} 
function showrecentposts(e) { 
    img = new Array(); 
    for (var i = 0; i < numposts; i++) { 
        var f = e.feed.entry[i]; 
        var g = f.title.$t; 
        var h; 
        if (i == e.feed.entry.length) break; 
        for (var k = 0; k < f.link.length; k++) { 
            if (f.link[k].rel == 'alternate') { 
                h = f.link[k].href; 
                break 
            } 
        } 
        if ("content" in f) { 
            var j = f.content.$t 
        } else if ("summary" in f) { 
            var j = f.summary.$t 
        } else 
        var j = ""; 
        s = j; 
        a = s.indexOf("<img"); 
        b = s.indexOf("src=\"", a); 
        c = s.indexOf("\"", b + 5); 
        d = s.substr(b + 5, c - b - 5); 
        if ((a != -1) && (b != -1) && (c != -1) && (d != ""))  {img[i] = d;} else {img[i]="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbvWUndPSIo3rk4oEMk2Y8nUeUXt-OuGOJjeOD5xlZ9FQPFo0BnStFsVmuDiGbHQa5b6gPDiOMf7LJ5aZalFNtvK2b2xe_tJxZQ9ARolxHequsiSOa7i5AJqUFn5k0oHcH9gpyMzweh2S8/s1600/no-image-namkna.jpg";} 
        var l = '<table border="0" cellpadding="0" cellspacing="0" style="margin-bottom:5px;border-bottom:double #eee"><tr><td><img width="110" height="85" src="' + img[i] + '" align="left" border="0" title="' + g + '" alt="' + g + '" style="margin:5px 10px 0 0"><a href="' + h + '" style="color:'+maintitle+'"><b>' + g + '</b></a><p style="margin:0;padding:5px 0 10px">' + removeHtmlTag(j, sumPosts) + ' ...</p></td></tr></table>'; 
        var m = '<li><a href="' + h + '" style="color:'+subtitle+'">' + g + '</a></li>'; 
        if ((i >= 0) && (i < list1)) { 
            var n = l 
        } 
        if (i == list1) { 
            var n = '<div class="namkna-rc"><ul>' + m 
        } 
        if ((i > list1) && (i < numposts - 1)) { 
            var n = m 
        } 
        if (i == numposts - 1) { 
            var n = m + '</ul></div>' 
        } 
        document.write(n) 
    } 
} 
document.write("<script src=\"http://namkna.blogspot.com/feeds/posts/default/-/Blogspot-tips?max-results="+numposts+"&orderby=published&alt=json-in-script&callback=showrecentposts\"><\/script>"); 
//]]> 
</script> 
</div>
Trong đó :

  • maintitle = "#f0c"; : màu tiêu đề bài viết đầu tiên ( có ảnh và trích dẫn )
  • subtitle = "#39c"; : màu tiêu đề các bài viết tiếp theo
  • Nếu chưa biết mã màu thì bạn vào đây để lựa chọn cho mình mã màu như ý nha.
- Nếu muốn rút gọn tiêu đề khi bài viết quá dài thì bạn xem cách làm ves2 tại đây.
- Lưu ý :Để sử dụng thủ thuật lâu dài bạn hãy download các file ảnh về và upload lên host riêng nha.

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

itechplus