Hiển thị các bài đăng có nhãn HTML. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn HTML. Hiển thị tất cả bài đăng

Sửa lỗi không phân trang khi xem theo nhãn blog

Phân trang (page navigation) là một tiện ích mà tất cả các blogger chuyên nghiệp và bán chuyên nghiệp đều dùng. Ngoài mục đích làm đẹp còn để blog tải nhanh và giúp độc giả tiện theo dõi các bài viết của các bạn hơn. Tuy nhiên có một lỗi mà hầu hết người dùng blogger đều mắc phải là khi click vào xem nhãn trang index hay trang chủ thì số bài đăng hiển thị trên 1 trang lại lên đến 20 theo mặc định hoặc thiếu số bài mà các bạn đã định trước trong tiện ích phân trang.

»  Nguyên nhân chính:
  1. Bạn chưa định dạng cấu hình của các thẻ XML quy định số bài viết tải ở mỗi trang nhãn.
  2. Dung lượng số bài viêt trên trang của bạn quá lớn nên feed phải giảm tải số bài để không vượt quá giới hạn cho phép.
Bài viết này mình sẽ lầm lượt hướng dẫn các bạn các khắc phục 2 lỗi trên. Khắc phục lỗi không phân trang hoặc không hiển thị đúng số bài đăng khi xem theo nhãn trong blogspot!

» Định hình lại mã XML của template:
- Thực ra việc hiển thị số bài đăng trên 1 trang là thêm vào sau địa chỉ dòng ?&max-results=5 để ngắt trang. Vì vậy để sửa lỗi này ta chỉ việc thực hiện.

1.1- Đăng nhập vào blog
1.2- Chọn Mẫu - Chỉnh sửa HTML và  thay tất cả dòng: expr:href='data:label.url'

Thành dòng sau:
expr:href='data:label.url + "?&max-results=5"'

Thay 5 thành số bài đăng bạn muốn hiển thị trên 1 trang nhãn Label hoặc trang chủ.

- Nếu làm đến đây mà vẫn không được thì hãy làm nốt bước bên dưới đảm bảo thành công 100%

» Tối giản tổng dung lượng cho phép của mỗi bài viết:
- Như các bạn đã biết Feedbruner sẽ lưu trữ các bài viết của bạn trên trang feedbruner. Sau đó nó sẽ hiển thị 20 bài viết gần đây nhất trên trang feed rss (hoặc feed atom). Và trang RSS này chỉ cho dung lượng tối da là 576K, Nếu lớn hơn thì feed sẽ tự động cắt giảm các bớt các bài viết cho đến khi nào tổng dung lượng của các bài viết còn nhỏ hơn hoặc bằng 576K. Vậy mục tiêu của chúng ta là phải giảm dung lượng tổng của 20 bài viết gần đây nhất xuống dưới 576K-bite để số bài viết không bị cắt giảm đi và không ảnh hưởng đến phân trang. Để làm được điều này hãy làm như sau:

1.1- Truy cập vào Blog.
1.2- Chọn Bài đăng => Đã xuất bản:
Sửa lỗi không phân trang khi xem theo nhãn

1.3- Bấm vào chỉnh sửa bài viết bạn đã xuất bản.
Sửa lỗi không phân trang khi xem theo nhãn

- Sau đó hãy đặt chuột vào vị trí muốn readmore và bấm vào nút Chèn dấu ngắt trang (Readmore).
Tạo Readmore cho các Bài đăng trên blog

Chèn dấu ngắt trang

Mẹo: nên đặt nút readmore sau đoạn văn bản đầu tiên trong bài viết của bạn hoặc sau khoảng 250-500 ký tự đầu tiên. Nếu bài viết gồm nhiều hình ảnh thì hãy đặt ngay sau hình ảnh đầu tiên.

- Bấm xuất bản.
=> Làm tương tự với các bài còn lại. Lưu ý là chỉ cần làm với 20 bài viết đầu tiên thôi nhé.

2- Cài đặt để giảm dung lượng nguồn cấp dữ liệu của bạn.
2.1- Bạn vào cài đặt => Vào Khác
2.2- Tại mục Nguồn cấp dữ liệu trang web => Bạn chình sửa phần Cho phép nguồn cấp dữ liệu blog thành Cho đến dấu ngắt.
Sửa lỗi không phân trang khi xem theo nhãn

2.3- Bấm lưu cài đặt lại.
Bây giờ bạn có thể đăng ký feed cho blog mà không sợ xuất hiện lỗi nữa rồi

» Cài đặt số bài trên blogger.
 Bước này đơn giản nhưng nhiều blogger thường quên và bỏ qua nó.
1. Vào Cài đặt => Bài đăng và nhận xét => Hiển thị tối đa

SlideShow trình chiếu ảnh với hiệu ứng tuyệt đẹp cho blogspot /website

Chia sẻ đoạn code slideshow trình chiếu ảnh cho blogspot rất đẹp, phù hợp với cả các website và các mã nguồn mở khác.

SlideShow trình chiếu ảnh blogspot

Với hiệu ứng chuyển động mượt mà, khá nhẹ nhàng và dễ tuỳ biến

Hướng dẫn chèn code slideshow trình chiếu ảnh vào blogspot:

Bước 1: Bạn đăng nhập Blogger -> Mẫu -> Nhấn tổ hợp phím Ctrl F và tìm đến thẻ ]]></b:skin sau đó dán đoạn CSS sau lên phía trên
img{max-width:100%}
.sliderz-wrapper{overflow:hidden;width:100%;max-width:1340px;max-height:400px;margin:auto;position:relative;margin-bottom:20px}
.sliderz-entry-list-wrapper{position:relative;width:100%;height:0;padding-top:30%;left:0;transition:.5s all cubic-bezier(0.78,-0.1,0.58,1)}
.sliderz-entry-list{display:flex;justify-content:space-around;position:absolute;width:100%;height:100%;top:0;left:0}
.sliderz-entry{width:33%;height:100%;box-sizing:border-box}
.sliderz-preview-img{width:100%;height:100%}
.sliderz-prev,.sliderz-next{width:50px;height:100%;position:absolute;z-index:2;opacity:.1;transition:.5s all ease-out;cursor:pointer}
.sliderz-next{right:-20px;top:0}
.sliderz-wrapper:hover .sliderz-prev,.sliderz-wrapper:hover .sliderz-next{opacity:1}
.sliderz-prev-btn,.sliderz-next-btn{font-size:40px;position:absolute;top:46%;width:50px;height:50px;z-index:3;color:#fff;transition:.5s all ease-out}
.sliderz-wrapper .sliderz-prev-btn{left:-30px}
.sliderz-wrapper .sliderz-next-btn{right:-30px}
.sliderz-wrapper:hover .sliderz-prev-btn{left:10px}
.sliderz-wrapper:hover .sliderz-next-btn{right:10px}
.sliderz-pick{position:absolute;top:10px;right:10px;display:flex}
.sliderz-pick > .sliderz-number{width:14px;height:14px;margin:4px;background:rgba(255,255,255,0.78);display:block;border-radius:50%;cursor:pointer;transition:.5s all ease-out}
.sliderz-pick > .sliderz-number:hover,.sliderz-pick > .sliderz-number.open{background:#f5003a}

Bước 2: Để hiển thị Slider này bạn sử dụng đoạn Code sau và dán vào nơi muốn hiển thị

<div class="sliderz-wrapper">
<div class="sliderz-prev" onclick="sliderz_goto(-1)"><i class="fa fa-chevron-left sliderz-prev-btn" aria-hidden="true"></i></div>
<div class="sliderz-entry-list-wrapper"><div class="sliderz-entry-list"></div></div>
<div class="sliderz-next" onclick="sliderz_goto(-2)"><i class="fa fa-chevron-right sliderz-next-btn" aria-hidden="true"></i></div>
<div class="sliderz-pick"></div>
</div>
<script>
var slider_entry = [
["title ảnh","Link tới","Link ảnh"],
["title ảnh","Link tới","Link ảnh"],
["title ảnh","Link tới","Link ảnh"],
["title ảnh","Link tới","Link ảnh"]
];

var slider_width = 100; // Chiều rộng slide (%)
var sliderz_time = 2000; // Thời gian chuyển slide (s)
 
var entry = "",pick="", slider_entry_len = slider_entry.length;
for (var i = slider_entry_len-1; i>=0; i--)
{
  entry += '<div class="sliderz-entry" style="width:'+100/slider_entry_len+'%"><a class="sliderz-preview" href="'+slider_entry[i][1]+'" target="_blank"><img class="sliderz-preview-img" src="'+slider_entry[i][2]+'" alt="'+slider_entry[i][0]+'"/></a></div>';
  pick = '<span class="sliderz-number" data-slide-number='+i+' onclick="sliderz_goto(event)"></span>'+pick;
}
var slider_entry_wrapper = document.getElementsByClassName("sliderz-entry-list-wrapper")[0];
slider_entry_wrapper.style.width = slider_entry_len*slider_width + '%';
document.getElementsByClassName("sliderz-entry-list")[0].innerHTML = entry;
document.getElementsByClassName("sliderz-pick")[0].innerHTML = pick;

var slider_wrapper = document.getElementsByClassName("sliderz-wrapper")[0];
var sliderz_timer = setInterval(function(){sliderz_goto(-2);}, sliderz_time);
slider_wrapper.addEventListener("mouseenter", function(){clearInterval(sliderz_timer);});
slider_wrapper.addEventListener("mouseleave", function(){sliderz_timer = setInterval(function(){sliderz_goto(-2);}, sliderz_time);});

var sliderz_goto = (function () {
 var slider_ctrl = document.getElementsByClassName("sliderz-entry-list-wrapper")[0];
 var curpos = 0, range = slider_entry_len, slider_wid=slider_width;
 var pickls = document.getElementsByClassName("sliderz-number");
 return function(pos)
 {
  if (pos==event) curpos = pos.target.dataset.slideNumber;
  else if (pos==-1) { curpos = --curpos%range; curpos=curpos<0?range-1:curpos; }
  else if (pos==-2) curpos = ++curpos%range;
  slider_ctrl.style.left = -curpos*slider_wid+"%";
  for (var i = pickls.length-1; i>=0; i--) pickls[i].classList.remove("open");
  pickls[curpos].classList.add("open");
 }
})();
slider_entry = ""; entry = ""; slider_entry_wrapper = ""; slider_wrapper = ""; pick = "";
slider_width = 0; slider_entry_len=0;
</script>

CHỈNH SỬA:

title ảnh: tên của ảnh
Link tới: Link hoặc đường dẫn
Link ảnh: Linh ảnh sử dụng định dạng JPG, PNG,...
Chiều rộng slide (%): Phần trăm
Thời gian chuyển slide (s): Giây

Để thêm một slide ảnh nữa bạn thêm một code sau vào cùng chỗ title ảnh, link ảnh,...
["title ảnh","Link tới","Link ảnh"],

KẾT LUẬN
Chỉ với vài bước đơn giản bạn đã có một slide trình chiếu ảnh tuyệt đẹp cho website/blog của bạn. Chúc bạn thành công!

Menu dọc đa cấp cho website/ blogspot chuẩn Mobile

Hướng dẫn tạo menu dọc đa cấp cho blogspot đơn giản. Code này áp dụng cho tất cả các website được viết bởi php, asp, wordpress... Menu dọc đa cấp được tối ưu nhỏ gọn và đầy đủ chức năng chuẩn Mobile.
Menu dọc đa cấp cho website/ blogspot chuẩn Mobile

HƯỚNG DẪN THỰC HIỆN

Bước 1: Bạn đăng nhập Blogspot -> Mẫu -> Nhấn tổ hợp phím Ctrl + F và tìm đến thẻ ]]></b:skin và dán đoạn CSS sau lên trước thẻ đó
#cssmenu-doc,#cssmenu-doc ul,#cssmenu-doc ul li,#cssmenu-doc ul li a{margin:0;padding:0;border:0;list-style:none;line-height:1;display:block;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
#cssmenu-doc{width:200px;font-family:Helvetica,Arial,sans-serif;color:#fff;margin:70px auto}
#cssmenu-doc ul ul{display:none}
.align-right{float:right}
#cssmenu-doc > ul > li > a{padding:15px 20px;border-left:1px solid #1682ba;border-right:1px solid #1682ba;border-top:1px solid #1682ba;cursor:pointer;z-index:2;font-size:14px;font-weight:700;text-decoration:none;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,0.35);background:#36aae7;background:-webkit-linear-gradient(#36aae7,#1fa0e4);background:-moz-linear-gradient(#36aae7,#1fa0e4);background:-o-linear-gradient(#36aae7,#1fa0e4);background:-ms-linear-gradient(#36aae7,#1fa0e4);background:linear-gradient(#36aae7,#1fa0e4);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15)}
#cssmenu-doc > ul > li > a:hover,#cssmenu-doc > ul > li.active > a,#cssmenu-doc > ul > li.open > a{color:#eee;background:#1fa0e4;background:-webkit-linear-gradient(#1fa0e4,#1992d1);background:-moz-linear-gradient(#1fa0e4,#1992d1);background:-o-linear-gradient(#1fa0e4,#1992d1);background:-ms-linear-gradient(#1fa0e4,#1992d1);background:linear-gradient(#1fa0e4,#1992d1)}
#cssmenu-doc > ul > li.open > a{box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.15);border-bottom:1px solid #1682ba}
#cssmenu-doc > ul > li:last-child > a,#cssmenu-doc > ul > li.last > a{border-bottom:1px solid #1682ba}
.holder{width:0;height:0;position:absolute;top:0;right:0}
.holder::after,.holder::before{display:block;position:absolute;content:"";width:6px;height:6px;right:20px;z-index:10;-webkit-transform:rotate(-135deg);-moz-transform:rotate(-135deg);-ms-transform:rotate(-135deg);-o-transform:rotate(-135deg);transform:rotate(-135deg)}
.holder::after{top:17px;border-top:2px solid #fff;border-left:2px solid #fff}
#cssmenu-doc > ul > li > a:hover > span::after,#cssmenu-doc > ul > li.active > a > span::after,#cssmenu-doc > ul > li.open > a > span::after{border-color:#eee}
.holder::before{top:18px;border-top:2px solid;border-left:2px solid;border-top-color:inherit;border-left-color:inherit}
#cssmenu-doc ul ul li a{cursor:pointer;border-bottom:1px solid #32373e;border-left:1px solid #32373e;border-right:1px solid #32373e;padding:10px 20px;z-index:1;text-decoration:none;font-size:13px;color:#eee;background:#49505a;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}
#cssmenu-doc ul ul li:hover > a,#cssmenu-doc ul ul li.open > a,#cssmenu-doc ul ul li.active > a{background:#424852;color:#fff}
#cssmenu-doc ul ul li:first-child > a{box-shadow:none}
#cssmenu-doc ul ul ul li:first-child > a{box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}
#cssmenu-doc ul ul ul li a{padding-left:30px}
#cssmenu-doc > ul > li > ul > li:last-child > a,#cssmenu-doc > ul > li > ul > li.last > a{border-bottom:0}
#cssmenu-doc > ul > li > ul > li.open:last-child > a,#cssmenu-doc > ul > li > ul > li.last.open > a{border-bottom:1px solid #32373e}
#cssmenu-doc > ul > li > ul > li.open:last-child > ul > li:last-child > a{border-bottom:0}
#cssmenu-doc ul ul li.has-sub > a::after{display:block;position:absolute;content:"";width:5px;height:5px;right:20px;z-index:10;top:11.5px;border-top:2px solid #eee;border-left:2px solid #eee;-webkit-transform:rotate(-135deg);-moz-transform:rotate(-135deg);-ms-transform:rotate(-135deg);-o-transform:rotate(-135deg);transform:rotate(-135deg)}
#cssmenu-doc ul ul li.active > a::after,#cssmenu-doc ul ul li.open > a::after,#cssmenu-doc ul ul li > a:hover::after{border-color:#fff}

Bước 2: Tiếp tục tìm đến thẻ đóng </body> của blog và dán đoạn Javascript sau lên trên

<script type='text/javascript'>
//<![CDATA[
(function($) {
    $(document).ready(function() {
        $('#cssmenu-doc li.has-sub>a').on('click', function() {
            $(this).removeAttr('href');
            var element = $(this).parent('li');
            if (element.hasClass('open')) {
                element.removeClass('open');
                element.find('li').removeClass('open');
                element.find('ul').slideUp();
            } else {
                element.addClass('open');
                element.children('ul').slideDown();
                element.siblings('li').children('ul').slideUp();
                element.siblings('li').removeClass('open');
                element.siblings('li').find('li').removeClass('open');
                element.siblings('li').find('ul').slideUp();
            }
        });

        $('#cssmenu-doc>ul>li.has-sub>a').append('<span class="holder"></span>');

        (function getColor() {
            var r, g, b;
            var textColor = $('#cssmenu-doc').css('color');
            textColor = textColor.slice(4);
            r = textColor.slice(0, textColor.indexOf(','));
            textColor = textColor.slice(textColor.indexOf(' ') + 1);
            g = textColor.slice(0, textColor.indexOf(','));
            textColor = textColor.slice(textColor.indexOf(' ') + 1);
            b = textColor.slice(0, textColor.indexOf(')'));
            var l = rgbToHsl(r, g, b);
            if (l > 0.7) {
                $('#cssmenu-doc>ul>li>a').css('text-shadow', '0 1px 1px rgba(0, 0, 0, .35)');
                $('#cssmenu-doc>ul>li>a>span').css('border-color', 'rgba(0, 0, 0, .35)');
            } else {
                $('#cssmenu-doc>ul>li>a').css('text-shadow', '0 1px 0 rgba(255, 255, 255, .35)');
                $('#cssmenu-doc>ul>li>a>span').css('border-color', 'rgba(255, 255, 255, .35)');
            }
        })();

        function rgbToHsl(r, g, b) {
            r /= 255, g /= 255, b /= 255;
            var max = Math.max(r, g, b),
                min = Math.min(r, g, b);
            var h, s, l = (max + min) / 2;

            if (max == min) {
                h = s = 0;
            } else {
                var d = max - min;
                s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
                switch (max) {
                    case r:
                        h = (g - b) / d + (g < b ? 6 : 0);
                        break;
                    case g:
                        h = (b - r) / d + 2;
                        break;
                    case b:
                        h = (r - g) / d + 4;
                        break;
                }
                h /= 6;
            }
            return l;
        }
    });
})(jQuery);
//]]>
</script>

Bước 3: Để menu này hiển thị, thường là bạn để bên thanh Sidebar của website/blog
Cách khác bạn có thể thêm tiện ích HTML mới trong bố cục và dán vào chỗ bạn muốn hiển thị widget này
<div id='cssmenu-doc'>
    <ul>
        <li><a href='#'><span>Home</span></a>
        </li>
        <li class='active has-sub'><a href='#'><span>Products</span></a>
            <ul>
                <li class='has-sub'><a href='#'><span>Product 1</span></a>
                    <ul>
                        <li><a href='#'><span>Sub Product</span></a>
                        </li>
                        <li class='last'><a href='#'><span>Sub Product</span></a>
                        </li>
                    </ul>
                </li>
                <li class='has-sub'><a href='#'><span>Product 2</span></a>
                    <ul>
                        <li><a href='#'><span>Sub Product</span></a>
                        </li>
                        <li class='last'><a href='#'><span>Sub Product</span></a>
                        </li>
                    </ul>
                </li>
            </ul>
        </li>
        <li><a href='#'><span>About</span></a>
        </li>
        <li class='last'><a href='#'><span>Get Widget</span></a>
        </li>
    </ul>
</div>

Chỉnh sửa các danh mục hoặc thêm bớt theo cấu trúc sẵn có
Chúc bạn thành công! Nếu thấy bài viết có ích hãy chia sẻ để ủng hộ nhé !

Tạo bài viết liên quan 3 cột có ảnh Thumbnail tuyệt đẹp cho blogspot

Hướng dẫn tạo bài viết liên quan (related post) 3 cột có ảnh Thumbnail cho blogspot đẹp ấn tượng, bạn có thể tùy chỉnh số lượng cột. Giúp tăng lượt tương tác với bài viết hơn và giữ chân người đọc nhiều hơn.
Hướng dẫn tạo related post có ảnh Thumbnail cho blogspot
Hướng dẫn tạo related post có ảnh Thumbnail cho blogspot
Bước 1: Bạn dán đoạn CSS sau lên phía trên thẻ ]]></b:skin>  trong mẫu

.related-post-thumbnail{padding:20px 0 0;float:left;width:100%}
.related-post-thumbnail li{width:32.3333333%;float:left;margin-right:1.5%;position:relative}
.related-post-thumbnail li:nth-child(3n){margin-right:0}
.related-post-thumbnail img{width:100%;height:auto}
.related-post-thumbnail h3{border-left:0;padding-left:0;color:#CB2027;margin:0}
.related-post-thumbnail img{-webkit-filter:brightness(85%);-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-o-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}
.related-post-thumbnail img:hover{-webkit-filter:brightness(100%)}
@media (max-width:500px) {
.related-post-thumbnail li{width:49.5%;margin-right:.5%;min-height:170px}
.related-post-thumbnail li:nth-child(2n){margin-right:0;float:right}
.related-post-thumbnail li:nth-child(3n){margin-right:.5%}
}
@media (min-width:501px) and (max-width:768px) {
.related-post-thumbnail li{width:49.5%;margin-right:.5%;min-height:163px}
.related-post-thumbnail li:nth-child(2n){margin-right:0;float:right}
.related-post-thumbnail li:nth-child(3n){margin-right:.5%}
}
#related-title{margin-bottom:20px}

Bước 2: Để lấy ảnh Thumbnail và tiêu đề bạn tìm đến thẻ </head>  và dán đoạn JS sau lên phía trên

<script type='text/javascript'>
//<![CDATA[
      $(document).ready(function() {
        var w = 340;
        var h = 180;
        $('.related-post-thumbnail').find('img').each(function(n, image){
          var image = $(image);
          image.attr({src : image.attr('src').replace(/s\B\d{2,4}/,'w' + w + '-h' + h +'-c')});
          image.attr('width',w);
          image.attr('height',h);
        });
      });
      var titles=new Array();var titlesNum=0;var urls=new Array();var time=new Array();function related_results_labels(c){for(var b=0;b<c.feed.entry.length;b++){var d=c.feed.entry[b];titles[titlesNum]=d.title.$t;for(var a=0;a<d.link.length;a++){if(d.link[a].rel=="alternate"){urls[titlesNum]=d.link[a].href;time[titlesNum]=d.published.$t;titlesNum++;break}}}}function removeRelatedDuplicates(){var b=new Array(0);var c=new Array(0);e=new Array(0);for(var a=0;a<urls.length;a++){if(!contains(b,urls[a])){b.length+=1;b[b.length-1]=urls[a];c.length+=1;c[c.length-1]=titles[a];e.length+=1;e[e.length-1]=time[a]}}titles=c;urls=b;time=e}function contains(b,d){for(var c=0;c<b.length;c++){if(b[c]==d){return true}}return false}function printRelatedLabels(a){var y=a.indexOf('?m=0');if(y!=-1){a=a.replace(/\?m=0/g,'')}for(var b=0;b<urls.length;b++){if(urls[b]==a){urls.splice(b,1);titles.splice(b,1);time.splice(b,1)}}var c=Math.floor((titles.length-1)*Math.random());var b=0;document.write("<ul>");if(titles.length==0){document.write("<li>No Related Posts</li>")}else{while(b<titles.length&&b<20&&b<maxresults){if(y!=-1){urls[c]=urls[c]+'?m=0'}document.write('<li><i class="fa fa-check-square-o"></i><a href="'+urls[c]+'" title="'+time[c].substring(8,10)+"/"+time[c].substring(5,7)+"/"+time[c].substring(0,4)+'">'+titles[c]+"</a></li>");if(c<titles.length-1){c++}else{c=0}b++}}document.write("</ul>");urls.splice(0,urls.length);titles.splice(0,titles.length)};
      var relatedTitles = new Array();
      var relatedTitlesNum = 0;
      var relatedUrls = new Array();
      var thumburl = new Array();
      function related_results_labels_thumbs(json) {
        for (var i = 0; i < json.feed.entry.length; i++) {
          var entry = json.feed.entry[i];
          relatedTitles[relatedTitlesNum] = entry.title.$t;
          try {
            thumburl[relatedTitlesNum] = entry.gform_foot.url
          } catch (error) {
            s = entry.content.$t;
            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 != "")) {
              thumburl[relatedTitlesNum] = d
            } else thumburl[relatedTitlesNum] = 'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAt8KTYK4HsiA_TnfMidI7D2j8fJC-cY-1kebBC8aVooka8cbUg21gtXwKzxb0_aa9RuHkRNsF-UJc6ADtEsq94u52x5SW6PbSb0bOu_LPZx4O30fsn0cvw-JAcP9orYKlsaB4yuAxWlfp/s1600/no-thumbnail.png'
              }
          if (relatedTitles[relatedTitlesNum].length > 35) relatedTitles[relatedTitlesNum] = relatedTitles[relatedTitlesNum].substring(0, 60);
          for (var k = 0; k < entry.link.length; k++) {
            if (entry.link[k].rel == 'alternate') {
              relatedUrls[relatedTitlesNum] = entry.link[k].href;
              relatedTitlesNum++
            }
          }
        }
      }function removeRelatedDuplicates_thumbs() {
        var tmp = new Array(0);
        var tmp2 = new Array(0);
        var tmp3 = new Array(0);
        for (var i = 0; i < relatedUrls.length; i++) {
          if (!contains_thumbs(tmp, relatedUrls[i])) {
            tmp.length += 1;
            tmp[tmp.length - 1] = relatedUrls[i];
            tmp2.length += 1;
            tmp3.length += 1;
            tmp2[tmp2.length - 1] = relatedTitles[i];
            tmp3[tmp3.length - 1] = thumburl[i]
          }
        }
        relatedTitles = tmp2;
        relatedUrls = tmp;
        thumburl = tmp3
      }function contains_thumbs(a, e) {
        for (var j = 0; j < a.length; j++) if (a[j] == e) return true;
        return false
      }function printRelatedLabels_thumbs() {
        for (var i = 0; i < relatedUrls.length; i++) {
          if ((relatedUrls[i] == currentposturl) || (!(relatedTitles[i]))) {
            relatedUrls.splice(i, 1);
            relatedTitles.splice(i, 1);
            thumburl.splice(i, 1);
            i--
          }
        }
        var r = Math.floor((relatedTitles.length - 1) * Math.random());
        var i = 0;
        if (relatedTitles.length > 0) document.write('<h2>' + relatedpoststitle + '</h2>');
        document.write('<div style="clear: both;"/>');
        while (i < relatedTitles.length && i < 20 && i < maxresults) {
          document.write('<li><a style="float:left;');
          if (i != 0) document.write('"');
          else document.write('"');
          document.write(' href="' + relatedUrls[r] + '"><img class="related_img" src="' + thumburl[r] + '"/><br/><div id="related-title">' + relatedTitles[r] + '</div></a></li>');
          if (r < relatedTitles.length - 1) {
            r++
          } else {
            r = 0
          }
          i++
        }
        document.write('</div>');
        relatedUrls.splice(0, relatedUrls.length);
        thumburl.splice(0, thumburl.length);
        relatedTitles.splice(0, relatedTitles.length)
}
//]]>
</script>

Bước 3: Trong bước này bạn cần chú ý hơn, bạn tìm đến thẻ <data:post .body=""> và dán đoạn code sau xuống phía dưới (lưu ý nếu không hiển thị bạn tìm và kiểm tra từng thẻ, trong mẫu thường có ít nhất 3 thẻ này nhé)

<div class='scroll-box related-post-thumbnail'>
<h3><span>RELATED POST:</span></h3>
<b:loop values='data:post.labels' var='label'>
<script expr:src='&quot;/feeds/posts/default/-/&quot; + data:label.name + &quot;?alt=json-in-script&amp;callback=related_results_labels_thumbs&amp;max-results=5&quot;' type='text/javascript'/>
</b:loop>
<script type='text/javascript'>
 var currentposturl=&quot;<data:post.url/>&quot;;
 var maxresults=6;
 var relatedpoststitle=&quot;&quot;;
 removeRelatedDuplicates_thumbs();
 printRelatedLabels_thumbs();
</script>
</div>
Chỉnh sửa: maxresults=6 Mặc định là 6 bài bạn có thể tăng giảm theo nhu cầu sử dụng.
Chúc bạn thành công!

Tạo bình luận mới nhất (Recent comments) cho Blogspot

Trong Blogspot cũng có sẵn tính năng này nhưng việc quản lý bình luận khá khó khăn (Mỗi khi muốn xem bình luận bạn phải đăng nhập vào phần Quản trị của Blogspot mới xem được), với Plugins này bạn sẽ phản ứng kịp thời với những spammer hay trả lời nhanh nhất cho những câu hỏi của các độc giả đặt ra trong các chủ đề của bạn.

Bình luận mới nhất (Plugins Recent comments) thường thì có 2 dạng: Có hiển thị Avatar và không hiển thị Avatar.

Bắt đầu thủ thuật !

Đầu tiên bạn vào Blog => Bố cục => Thêm tiện ích => HTML/JavaScript và dán đoạn mã code dưới đây vào và Lưu lại. Sau đây là 3 Phong cách cho các bạn lựa chọn:

1. Code Widget bình luận có hiển thị ảnh Avatar.
Tạo bình luận mới nhất (Recent comments) cho Blogspot

<style type="text/css" scoped>
ul.kangismet_recent{list-style:none;margin:0;padding:0;}
.kangismet_recent li{backgroud:#eee;margin:0 0 6px !important;padding:3px
!important;display:block;clear:both;overflow:hidden;list-style:none; border: 1px solid #aaa;
border-radius:9px; max-height: 100px;}
.kangismet_recent li:hover{border: 1px solid #ddd;background:#aaa;color:#fff}
.kangismet_recent a {text-decoration:none;}
.avatarImage{padding:3px;background:#fefefe;-webkit-box-shadow:0 1px 1px #ccc;-moz-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px
#ccc;float:left;margin:0 6px 0 0;position:relative;overflow:hidden;}
.avatarRound{-webkit-border-radius:100px;-moz-border-radius:100px;border-radius:100px;width:35px;height:35px}
.kangismet_recent li span{margin-top:4px;color: #222;display: block;font-size: 12px;line-height: 1.4;}
</style>
<script type="text/javascript">
//<![CDATA[
    var
 numComments = 5,
 showAvatar  = true,
 avatarSize  = 35,
 roundAvatar = true,
 characters  = 40,
 defaultAvatar  = "http://www.gravatar.com/avatar/?d=mm",
 hideCredits = true;
 maxfeeds=50,
 adminBlog='Your Name';
//]]>
</script>
<script type="text/javascript" src="https://googledrive.com/host/0B-jiSGsgLypMajF6WjJfMXVkODA"></script>
<script type="text/javascript" src="/feeds/comments/default?alt=json&amp;callback=kangismet_recent&amp;&amp;max-results=50">
</script>

2. Code Widget bình luận có hiển thị ảnh Avatar và hiệu ứng.
Tạo bình luận mới nhất cho Blogspot

<style type="text/css" scoped>
ul.allbloggertricks_recent{list-style:none;margin:0;padding:0;}
.allbloggertricks_recent li{background:none!important;display:block;clear:both;overflow:hidden;list-style:none;border:1px solid transparent;border-radius:9px;max-height:100px;-webkit-transition-duration:.5s;-moz-transition-duration:.5s;-o-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:0;-moz-transition-property:0;-o-transition-property:0;transition-property:transform;margin:0 0 6px!important;padding:3px!important}
.allbloggertricks_recent li:hover{border:1px solid #ddd;
-webkit-transform:rotate(6deg);-moz-transform:rotate(6deg);-o-transform:rotate(6deg) }
.allbloggertricks_recent a {text-decoration:none;}
.avatarImage{padding:3px;background:#fefefe;-webkit-box-shadow:0 1px 1px #ccc;-moz-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px
#ccc;float:left;margin:0 6px 0 0;position:relative;overflow:hidden}
.avatarRound{-webkit-border-radius:100px;-moz-border-radius:100px;border-radius:100px;width:35px;height:35px}
.allbloggertricks_recent li span{margin-top:4px;color: #222;display: block;font-size: 12px;line-height: 1.4;}
</style>
<script type="text/javascript">
//<![CDATA[
    var
 numComments  = 5,
 showAvatar  = true,
 avatarSize  = 35,
 roundAvatar = true,
 characters  = 40,
 defaultAvatar  = "http://www.gravatar.com/avatar/?d=mm",
 hideCredits = true;
 maxfeeds=50,
 adminBlog='Your Name';
//]]>
</script>
<script type="text/javascript" src="https://googledrive.com/host/0B-0uHUanipfMU1FDNkI2U1FWMG8"></script>
<script type="text/javascript" src="/feeds/comments/default?alt=json&amp;callback=allbloggertricks_recent&amp;&amp;max-results=50">
</script> 

3. Code Widget bình luận không hiển thị ảnh Avatar.

Tạo bình luận mới nhất cho Blog

<script style=text/javascript src="https://googledrive.com/host/0B-jiSGsgLypMaGJIb0pROE9OZ0E"></script><script style=text/javascript >var a_rc=10;var m_rc=false;var n_rc=true;var o_rc=0;</script><script src=/feeds/comments/default?alt=json-in-script&callback=showrecentcomments ></script>
<style type=text/css>
.rcw-comments a {text-transform: capitalize;}
.rcw-comments {border-bottom: 1px solid #666; padding-top: 6px!important; padding-bottom: 6px!important;}
</style> 

Tùy chỉnh:
numComments = 5 và var a_rc=10 : Số lượng bình luận bạn muốn hiển thị.
showAvatar = true : Không muốn hiển thị ảnh Avatar hãy nhập False.
avatarSize = 35 : Kích thước ảnh Avatar.
characters = 40 : Số lượng ký tự gợi ý bình luận.
defaultAvatar = http://www.gravatar.com/avatar/?d=mm : Ảnh Avatar mặc định.
maxfeeds=50 : Tối đa bình luận hiện thị.
adminBlog='Your Name' : Tên Admin.


Tự động thêm thuộc tính Nofollow và _blank cho liên kết ngoài (Link Out) trong Blog

Link Out trong làm seo, vẫn là điều đáng bàn cãi… Vậy có khi nào các bạn tự hỏi: Link Out là gì? Tại sao bạn nên Link Out đến Blog/Website khác? Sử dụng Link Out như thế nào để đạt hiểu quả cao nhất cho SEO?
Tự động thêm thuộc tính Nofollow

Mình xin đi qua vài vấn đề cơ bản trước khi thực hiện thủ thuật:

1. Link Out là gì?

Link out có thể thể hiểu là một loại link từ trang của bạn trỏ đến một trang khác. Trong trường ngược lại một site khác trỏ link về site của bạn thì nó là link out của site kia nhưng lại là backlink của bạn.

2. Tại sao bạn nên Link Out đến Blog/Website khác?

Việc bạn đi Link Out đến các nguồn uy tín sẽ làm tăng mức độ tin cậy của bạn đối với độ giả (Thu hút được độc giả và Blog/Website của bạn một cách tự nhiên).

Về mặt logic, khi liên kết đến Blog/Website khác sẽ làm cho Site của bạn kế thừa được Pagerank Authority của site đó. Do đó bạn có thể thấy lợi ích rõ ràng của việc Link (liên kết) tới các Blog/Website có chất lượng cao (Cải thiện được thứ hạn Site).

3. Sử dụng Link Out như thế nào để đạt hiểu quả cao nhất cho SEO?

Thứ nhất, Khi đặt link trỏ tới Blog/Website khác, luôn nhớ phải đặt thuộc tính “target=_blank” cho tất cả Link Out. Hiểu đơn giản, khi Bạn click chuột vào các Link Out thì trình duyệt sẽ mở ra một tab mới thay vì trình duyệt sẽ “bay” thẳng vào trang khác như các Link Out thông thường. Cách này có một điểm lợi đó là không làm mất Visitor đang truy cập Site của bạn vì khi có thao tác click vào Link Out, trang của bạn vẫn xuất hiện trên trình duyệt, ngược lại nó sẽ bay sang trang đích mà mất hiển thị trang của bạn.

Thứ hai, bạn nên đặt thuộc tính Nofollow cho Link Out. Việc này nhằm mục đích để Bot của Google nó không đi theo link và ra khỏi trang Blog/Website của bạn. Sẽ là không tốt vì đang dò tìm trên nhà của bạn mà lại chạy sang nhà người khác rồi lại tìm đường quay lại nhà của bạn, nếu Bot không tìm được đường trở lại nhà bạn đó là một đều rất tại hại.

Vậy cách sử dụng link Out tốt nhất là nên dùng cả 2 thuộc tính trên cho mỗi Link Out.

Bạn nên dùng thủ thuật tự động thêm thuộc tính Nofollow và _blank cho liên kết ngoài khi Blog/Website của bạn đi khá nhiều Link Out. Chẳng hạn, như Blog tài liệu miễn phí của mình. Nhược điểm của thủ thuật này là dùng jQuery điều này sẽ ảnh hưởng đến một phần nhỏ thời gian tải trang => Do đó mình khuyên các bạn nên thực hiện thủ công nếu Link Out trên Site của Bạn không đang kế.

Giờ bắt đầu thủ thuật Tự động thêm thuộc tính Nofollow và _blank cho liên kết ngoài (Link Out) trong Blog

Vào Blog => Mẫu => Chỉnh sửa HTML. Nhấn tổ hợp phím Ctrl + F và tìm đến thẻ </head>. Sau đó dán đoạn mã Code sau lên phía trên thẻ </head> và Lưu mẫu.

<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js' type='text/javascript'></script>
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery('a[href*="http://"]:not([href*="https://gicovietnam.blogspot.com/"])').attr('rel', 'nofollow');
jQuery('a[href*="https://"]:not([href*="https://gicovietnam.blogspot.com/"])').attr("target", "_blank");
    });
</script>
Tùy chỉnh:

Nếu Blog của bạn đã sử dụng thư viện jQuery thì bỏ đoạn Code màu đỏ đi.

Sửa lại liên kết https://gicovietnam.blogspot.com/ thành URL của Blog/Website bạn và Lưu lại Template sau đó kiểm tra kết quả nhé. Với thủ thuật này nó sẽ tự động thêm thuộc tính Nofollow và thẻ “target=_blank” cho tất cả các liên kết ngoài giúp bạn tiết kiệm được nhiều thời gian.

Tạo phân trang cho Blogspot đẹp dễ thực hiện

Tạo một phân trang Navigation cho Blog đẹp sẽ làm cho Blogspot của bạn trở nên chuyên nghiệp hơn. Tuy nhiên để phù hợp với các mẫu Blogs khác nhau, nên ở bài viết này mình tiếp tục đưa ra 7 kiểu đánh số trang blog cho các bạn lựa chọn.

Tạo phân trang cho Blogspot

Trong quá trình cài đặt các bạn nên thực hiện từng bước, một cách kỹ càng việc tạo phân trang cho Blogspot không quá khó nhưng lại nhiều bạn thực hiện không được thật đáng buồn.

Hướng dẫn tạo phân trang cho Blogspot đơn giản nhất

Bước 1: Đầu tiên các bạn vào Blog => Mẫu => Chỉnh sửa HTML. Nhấn tổ hợp phím Ctrl + F và tìm kiếm ]]></b:skin>. Sau đó paste đoạn code style mà bạn muốn lên trên thẻ ]]></b:skin>. Dưới đây là các style cho bạn lựa chọn.

Style 1:

đánh số trang cho blogspot
#blog-pager{clear:both; margin:30px auto; text-align:center; padding: 7px;}
.blog-pager {background: none;}
.displaypageNum a, .showpage a, .pagecurrent{padding: 5px 10px; margin-right:5px; color: #F4F4F4; background-color:#404042; border:2px solid #ccc;}
.displaypageNum a:hover, .showpage a:hover, .pagecurrent{background:#666666; text-decoration:none; color: #fff;}
#blog-pager .showpage, #blog-pager, .pagecurrent {font-weight:bold; color: #000;}
 .showpageOf {display:none!important}
#blog-pager .pages {border:none; -webkit-box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53); -moz-box-shadow:0px 5px 3px -1px rgba(50, 50, 50, 0.53); box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53);}

Style 2:
code đánh số trang cho blog

#blog-pager {clear:both; margin:30px auto; text-align:center; padding: 7px;}
.blog-pager {background: none;}
.displaypageNum a, .showpage a, .pagecurrent{padding: 5px 10px; margin-right:5px; color: #000; background-color:#fff; border:2px solid #ccc;}
.displaypageNum a:hover, .showpage a:hover, .pagecurrent{background:#222; text-decoration:none; color: #fff;}
#blog-pager .showpage, #blog-pager, .pagecurrent{font-weight:bold; color: #ccc;}
 .showpageOf {display:none!important}
#blog-pager .pages{border:none; -webkit-box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53); -moz-box-shadow:0px 5px 3px -1px rgba(50, 50, 50, 0.53); box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53);}

Style 3:
code phân trang cho blog
#blog-pager{clear:both;margin:30px auto; text-align:center; padding: 7px;}
.blog-pager {background: none;}
.displaypageNum a, .showpage a, .pagecurrent{padding: 5px 10px; margin-right:5px; color: #F4F4F4; background-color:#2aa4cf;}
.displaypageNum a:hover, .showpage a:hover, .pagecurrent {background:#1D7290; text-decoration:none; color: #fff;}
#blog-pager .showpage, #blog-pager, .pagecurrent{font-weight:bold; color: #000;}
 .showpageOf {display:none!important}
#blog-pager .pages{border:none; -webkit-box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53); -moz-box-shadow:0px 5px 3px -1px rgba(50, 50, 50, 0.53); box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53);}

Style 4:
code phân trang cho Blogspot đẹp dễ thực hiện
#blog-pager{clear:both; margin:30px auto; text-align:center; padding: 7px;}
.blog-pager {background: none;}
.displaypageNum a, .showpage a, .pagecurrent{padding: 5px 10px; margin-right:5px; color: #F4F4F4; background-color:#00CC00; border:2px solid #008E00; border-radius:2px;}
.displaypageNum a:hover, .showpage a:hover, .pagecurrent{background:#008E00; text-decoration:none; color: #fff;}
#blog-pager .showpage, #blog-pager, .pagecurrent{font-weight:bold; color: #000;}
 .showpageOf {display:none!important}
#blog-pager .pages{border:none; -webkit-box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53); -moz-box-shadow:0px 5px 3px -1px rgba(50, 50, 50, 0.53); box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53);}

Style 5:
code phân trang cho blogger
#blog-pager{clear:both; margin:30px auto; text-align:center; padding: 7px;}
.blog-pager {background: none;}
.displaypageNum a, .showpage a, .pagecurrent{padding: 5px 10px; margin-right:5px; color: #F4F4F4; background-color:#FF8000; border:2px solid #B25900; border-top-right-radius:7px; border-bottom-left-radius:7px;}
.displaypageNum a:hover, .showpage a:hover, .pagecurrent{background:#B25900; text-decoration:none; color: #fff;}
#blog-pager .showpage, #blog-pager, .pagecurrent{font-weight:bold; color: #000;}
 .showpageOf{display:none!important}
#blog-pager .pages{border:none; -webkit-box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53); -moz-box-shadow:0px 5px 3px -1px rgba(50, 50, 50, 0.53); box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53);}

Style 6:
page navigation cho blogger
#blog-pager{clear:both; margin:30px auto; text-align:center; padding: 7px;}
.blog-pager {background: none;}
.displaypageNum a, .showpage a, .pagecurrent{padding: 5px 10px; margin-right:5px; color: #F4F4F4; background-color:#009999; border:2px solid #006B6B; border-radius:999px 999px 999px 0px;}
.displaypageNum a:hover, .showpage a:hover, .pagecurrent{background:#006B6B; text-decoration:none; color: #fff;}
#blog-pager .showpage, #blog-pager, .pagecurrent{font-weight:bold; color: #000;}
 .showpageOf{display:none!important}
#blog-pager .pages{border:none; -webkit-box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53); -moz-box-shadow:0px 5px 3px -1px rgba(50, 50, 50, 0.53); box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53);}

Style 7:
page navigation cho blogspot
#blog-pager{clear:both; margin:30px auto; text-align:center; padding: 7px;}
.blog-pager {background: none;}
.displaypageNum a, .showpage a, .pagecurrent{padding: 5px 10px; margin-right:5px; color: #F4F4F4; background-color:#FFCC00; border:2px solid #B28F00; border-radius:999px 999px 999px 999px;}
.displaypageNum a:hover, .showpage a:hover, .pagecurrent{background:#B28F00; text-decoration:none; color: #fff;}
#blog-pager .showpage, #blog-pager, .pagecurrent{font-weight:bold; color: #000;}
 .showpageOf{display:none!important}
#blog-pager .pages{border:none; -webkit-box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53); -moz-box-shadow:0px 5px 3px -1px rgba(50, 50, 50, 0.53); box-shadow: 0px 5px 3px -1px rgba(50, 50, 50, 0.53);}

Bước 2: Tiếp đó nhấn tổ hợp phím Ctrl + F và tìm đến thẻ </body>. Sau đó dán đoạn mã Code sau ở phía trên thẻ </body>Lưu mẫu. (Việc cài đặt Code phân trang cho Blog/Website vậy là xong)

<b:if cond='data:blog.pageType != &quot;item&quot;'>
<b:if cond='data:blog.pageType != &quot;static_page&quot;'>
<script type='text/javascript'>
  /*<![CDATA[*/
    var perPage=15;
    var numPages=3;
    var prevText ='◄';
    var nextText ='►';
    var urlactivepage=location.href;
    var home_page="/";
  /*]]>*/
</script>
<script type="text/javascript" src="https://drive.google.com/uc?id=0B8UIDnrd8gcMX1BNN0RyanZKMWM"> </script>
</b:if>
</b:if>  

Bước 3: Tạm gọi phân trang đồng bộ cho Blog/website của bạn
Tìm TẤT CẢ dòng code sau (nó ở nhiều vị trí):
expr:href='data:label.url'

Sửa thành:
expr:href='data:label.url + "?&amp;max-results=15"'

Tạo phân trang cho nhãn (label) trên thanh menu bạn tự tạo, thì nó cũng phân trang giống như vậy: Ví dụ ở đây nhãn bài đăng của mình là "thu-thuat-blogspot” nó sẽ có đường link như sau:
https://gicovietnam.blogspot.com/search/label/thu-thuat-blogspot

Sửa thành:
https://gicovietnam.blogspot.com/search/label/thu-thuat-blogspot?&amp;max-results=15  

Vậy việc tạo phân trang cho Blog/Website của bạn đã hoàn thành

Tùy chỉnh

perPage ?&max-results=: Có bao nhiêu bài viết được hiển thị ở mỗi trang, mặc định là 15.

numPages: Số lượng trang sẽ hiển thị trên thanh navigation (Ví dụ: Nếu bạn chọn số 3 và kết quả hiển thị là 1| 2| 3 ... 5)

Thay prevText ='◄', nextText ='►' thành nút Button bạn mong muốn or thành văn bản như: "Previous", "Next" chẳng hạn.

Code quảng cáo Popup under javascript ẩn đằng sau trình duyệt

Hiện nay có quá nhiều code quảng cáo popup được chia sẻ trên mạng. Tuy nhiên, các mã quảng cáo toàn bật sang tab mới hoặc bật lên rất khó chịu cho người đọc.


Chính vì vậy, mình sẽ chia sẻ cho các bạn đoạn code PopUnder Javascript ẩn đằng sau trình duyệt để tránh gây phiền hà cho khán giả. Với đoạn code Popunder này bạn có thể tùy chỉnh thời gian bật quảng cáo giữa các lần tùy thích.
Code quảng cáo Popup under javascript ẩn đằng sau trình duyệt
Bạn hãy chép toàn bộ đoạn code quảng cáo popunder dưới đây vào mã nguồn của bạn

<script type='text/javascript'>
window.onload = function() {
    var puURL = &#39;https://gicovietnam.blogspot.com/&#39;;
    var puTS = Math.round(+new Date()/1000);
    //var puDate = currentDate.getDate().toString(); //day
    console.log(&#39;T.&#39;+localStorage.puTS+&#39;/&#39;+puTS);
    if (typeof localStorage.puTS == &#39;undefined&#39; || parseInt(localStorage.puTS) &lt;= (puTS - 3000)) {
        console.log(&#39;Yep&#39;);
        var links = document.getElementsByTagName(&#39;a&#39;);
        for(var i = 0, len = links.length; i &lt; len; i++) {
          links[i].onclick = function (e) {
              var puHref = this.getAttribute(&quot;href&quot;);
                var puTarget = this.getAttribute(&quot;target&quot;);
                if (puHref !== &#39;#&#39; &amp;&amp; puHref !== &#39;javascript:void(0)&#39;) {
                e.preventDefault();   
                if (puTarget == &#39;_blank&#39;) {
                    window.open(window.location.href);
                }
                window.open(puHref);
                window.location.href = puURL;
                localStorage.puTS = puTS;
              }
            }
        }
    }
};
</script>

Bạn chỉ cần thay tên miền https://gicovietnam.blogspot.com thành tên miền bạn muốn quảng cáo

Tùy chỉnh dòng code này var puTS = Math.round(+new Date()/1000); theo thời gian xuất hiện quảng cáo giữa các lần.

Mình đã thử và cảm thấy rất hài lòng, chúc các bạn thành công.

>> Code slide hình ảnh hoặc bài viết mới chạy ngang liên tục cho Blogspot
>> Code cố định Sidebar khi Scroll cuộn chuột lên xuống
>> Công cụ SEO từ khóa website tốt nhất dành cho dân SEO

Code cố định Widget (Sticky widget) khi cuộn trang cho Blogspot

Sticky Widget cố định cho Blog là widget sẽ chạy theo màn hình khi cuộn trang xuống hoặc cuộn trang lên.
Sticky Widget Blog

Với cách cố định Widget này sẽ giúp người truy cập nhanh vào các menu, hoặc bạn cần làm nổi bật một nội dung widget nào đó. Đặc biệt nó rất hay được dùng cho các trang cần cố định banner quảng cáo.

Để thực hiện Code cố định Widget (Sticky widget) khi cuộn trang cho Blogspot các bạn chỉ việc copy toàn bộ đoạn code phía dưới đây và chèn vào trước thẻ </body> trong template blogspot của các bạn.
<style>
.GICO_sticking {background:#f2f2f2 !important; position:fixed !important; top:0; z-index:9999; box-shadow:0px 10px 4px -5px rgba(0,0,0,0.3); margin-top: 0; position:relative9 !important;}
</style>
<script>
//<![CDATA[
StickyWidget("ID Widget"); // enter your widget ID here
function StickyWidget(elem) {
    var GCVN_sticky = document.getElementById(elem);
    var scrollee = document.createElement("div");
    GCVN_sticky.parentNode.insertBefore(scrollee, GCVN_sticky);
    var width = GCVN_sticky.offsetWidth;
    var iniClass = GCVN_sticky.className + ' GCVN_sticky';
    window.addEventListener('scroll', GICO_sticking, false);
    function GICO_sticking() {
        var rect = scrollee.getBoundingClientRect();
        if (rect.top < 0) {
            GCVN_sticky.className = iniClass + ' GICO_sticking';
            GCVN_sticky.style.width = width + "px";
        } else {
            GCVN_sticky.className = iniClass;
        }
    }
}
//]]>
</script>

Chú ý: Bạn thay ID Widget thành ID Widget mà bạn muốn cố định.

Để xem ID Widget các bạn vào Bố cục > Chỉnh sửa (Bạn bấm vào hình dưới đây để nhìn cho rõ nhé)
cố định menu khi cuộn trang

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

Nhúng video từ Google Drive vào Blogspot chuẩn Responsive

Ở bài viết trước mình đã hướng dẫn các bạn nhúng video từ Youtube vào Blog rồi. Nếu bạn nào chưa xem thì xem lại cách nhúng video youtube vào blog tại link dưới đây:

>> Code chèn video Youtube vào website blogspot Responsive

Hôm nay mình xin chia sẻ với các bạn cách nhúng Video từ Google Drive vào Blogspot chuẩn mobile Responsive, tương thích với mọi trình duyệt, tự động co dãn theo kích thước màn hình.

Cách 1: Chèn Video từ Google Drive vào Blogspot

1. Các bạn đăng nhập vào Google Drive và tìm VIDEO cần chèn vào blog.

2. Click chuột phải vào Video và bấm vào Nhận liên kết có thể chia sẻ được

nhúng video từ google drive vào blog

3. Các bạn Coppy đường link Video và để Video ở chế độ công khai, bất cứ ai cũng có thể xem

Đường link bạn vừa copy có dạng như sau:
https://drive.google.com/open?id=1sfK8uWdMa0f1cUzidYiK26Ta8GAD8-Ed0g

4. Bây giờ bạn chỉ việc chèn đoạn code sau vào nơi mà bạn muốn video hiển thị trên blog của bạn

<div class="video-container">
<iframe allowfullscreen="" frameborder="0" src="https://drive.google.com/file/d/ID VIDEO/preview?autoplay=1"></iframe>
</div>
Lưu ý: Các bạn thay ID VIDEO thành ID video của các bạn
Khi chèn video vào blog thì các bạn nhớ chuyển sang chế độ HTML để copy và Pass vào nhé.

Và bạn thêm đoạn CSS dưới vào blog của bạn để khi bạn nhúng video từ google drive  vào blog nó sẽ tự động co dãn theo mọi kích thước màn hình, chuẩn Responsive
/* Responsive video youtube----- */
.video-container {
    position: relative;
    padding-bottom: 56.25%;
}
.video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
Nếu bạn thực hiện đúng các bước như trên thì các bạn sẽ có kết quả như dưới đây:


Cách 2: Chèn Video từ máy tính vào Blog

Với cách này các bạn chỉ việc sử dụng công cụ UPLOAD VIDEO ngay tại khung đăng bài của blogspot như hình dưới và tải lên thôi. Sẽ có nhiều lựa chọn cho các bạn về kích thước v.v... giống như hình ảnh dưới đây.

chèn video từ máy tính vào blog


Tạo Sitemap cho Blogspot tối ưu SEO

Tạo Sitemap cho Blogspot tối ưu SEO cập nhật mới nhất, ping ngay đến google tìm kiếm. Đây là một bước tối ưu SEO cho blogspot của các bạn.
Vậy Sitemap (Sơ đồ) là gì?
Tạo sitemap cho Blogspot

Sitemap là một thành phần không thể thiếu cho blog của các bạn, tạo Sitemap cho blog nó cho phép các công cụ tìm kiếm và người dùng có thể dễ dàng tìm kiếm các bài viết có trên blog của bạn. Có 2 loại sitemap:

Loại 1: Sitemap dùng để gửi lên Google webmasters hay Bing webmaster … giúp google biết blogspot của các bạn có những bài viết nào để Google lập chỉ mục và hiển thị trên google tìm kiếm. Việc khai báo Sitemap là một trong những bước cần phải làm khi bạn đang làm SEO cho blog, khi bộ máy tìm kiếm quét trang web của bạn nó sẽ quét thông qua sitemap này.

Loại 2: Sitemap dành cho người dùng truy cập website. Người dùng có thể dễ dàng truy cập vào sitemap này để tìm kiếm và truy cập vào các bài viết được nhanh chóng.

Mình sẽ hướng dẫn các bạn cách tạo cả 2 loại sitemap cho Blogspot.

1. Thêm sitemap blogspot cho Google webmaster tools và Bing Webmaster Tools

Cách gửi sitemap blogspot cho Google webmaster tools và Bing Webmaster Tools hoàn toàn tương tự như nhau.

Trong bài viết này mình sẽ hướng dẫn tạo sitemap cho blogspot trên Google webmaster tools.

Để tạo sitemap các bạn vào địa chỉ Google webmaster tools: https://www.google.com/webmasters/
Địa chỉ Bing Webmaster Tools: https://www.bing.com/webmaster.

Các bạn hãy đăng nhập vào trang quản trị https://www.google.com/webmasters/ và chọn Thu thập dữ liệu > Sơ đồ trang web > Thêm/kiểm tra sơ đồ trang web
Cách tạo sitemap cho blog

Một cửa sổ Popup sẽ hiện lên và bạn hãy dán đoạn code sau vào và bấm Gửi
atom.xml?redirect=false&start-index=1&max-results=500
Thêm sơ đồ trang web

Đối với Bing Webmaster Tools là

https://gicovietnam.blogspot.com/atom.xml?redirect=false&start-index=1&max-results=500

Ở đây 500 là số lượng bài viết trên blog của bạn. Sau đó nhấn vào mục Gửi sơ đồ trang web

Như vậy chúng ta đã Thêm sitemap blogspot cho Google webmaster tools thành công. Việc cuối cùng là chờ cho google cập nhật.

Cập nhật sitemap thường xuyên cho Google webmaster tools và Bing Webmaster Tools

Để cập nhật Sitemap cho blogspot thì các bạn nhập theo dòng code sau:

atom.xml?redirect=false&start-index=m&max-results=n

Ở đây ta sẽ gửi n bài viết bắt đầu từ bài số m.

Ví dụ, ở trên chúng ta đã submit 500 bài viết và blog của chúng ta có thêm 200 bài viết mới thì chúng ta sẽ nhập theo cú pháp.

atom.xml?redirect=false&start-index=501&max-results=200

2. Tạo sitemap blogspot đẹp cho người dùng

Bước 1: Truy cập vào trang quản trị của Blogger
Bước 2: Các bạn vào Trang => rồi chuyển sang phần HTML và dán đoạn code sau
<script src="https://dl.dropbox.com/s/wuvcansw0g04qt0/sitemap.js" type="text/javascript"></script>
<script src="https://gicovietnam.blogspot.com/feeds/posts/default?max-results=9999&amp;alt=json-in-script&amp;callback=loadtoc"></script>
Các bạn thay địa chỉ blog https://gicovietnam.blogspot.com thành địa chỉ blog của bạn rồi nhấn xuất bản để xem kết quả.

Nếu bạn làm đúng thì sẽ xuất hiện trang giống với trang này của mình: https://gicovietnam.blogspot.com/p/sitemap.html

Hướng dẫn tạo Breadcrumbs cho Blogspot đơn giản

Hướng dẫn tạo breadcumbs cho blogspot giúp đưa trang web của bạn lên TOP 1 Google. Breadcrumbs là một trong những tiêu chí mà Google đưa ra để xếp thứ hạng blog của bạn trên Google tìm kiếm. Cách tạo Breadcrumbs cho Blogspot, Breadcrumb là tập hợp các đường link phân cấp giúp khách truy cập biết mình đang ở vị trí nào của blog.

Breadcrumbs là một thành phần rất quan trọng trong hệ thống navigation của website mà gần như vào bất cứ website nào bạn cũng thấy sự hiện diện của nó.
Đây chính là Breadcrumbs mà Blog của mình đang sử dụng

Chúng ta cùng thực hiện Cách tạo breadcrums cho blogspot nhé.

Bước 1: Bạn đăng nhập vào blog -> Thiết kế -> Mẫu -> Chỉnh sửa HTML -> Mở rộng tiện ích

Bước 2: Tìm đến đoạn code bên dưới:
<b:include data='top' name='status-message'/>

Và thay thế đoạn code trên thành:
<b:include data='top' name='status-message'/>     
<b:include data='posts' name='breadcrumb'/>

Bước 3: Tìm đến đoạn code sau đây:
<b:includable id='main' var='top'>

Và thay thế đoạn code trên thành:
<b:includable id='breadcrumb' var='posts'>
<b:if cond='data:blog.homepageUrl == data:blog.url'>
<!-- No breadcrumb on home page -->
<b:else/>
<b:if cond='data:blog.pageType == "item"'>
<!-- breadcrumb for the post page -->
<p class='breadcrumbs'>
<span class='post-labels'>
<a expr:href='data:blog.homepageUrl' rel='tag'>Home</a>
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.isLast == "true"'> »
<a expr:href='data:label.url' rel='tag'><data:label.name/></a>
</b:if>
</b:loop>
<b:else/>
»Unlabelled
</b:if>
» <span><data:post.title/></span>
</b:loop>
</span>
</p>
<b:else/>
<b:if cond='data:blog.pageType == "archive"'>
<!-- breadcrumb for the label archive page and search pages.. -->
<p class='breadcrumbs'>
<span class='post-labels'>
<a expr:href='data:blog.homepageUrl'>Home</a> » Archives for <data:blog.pageName/>
</span>
</p>
<b:else/>
<b:if cond='data:blog.pageType == "index"'>
<p class='breadcrumbs'>
<span class='post-labels'>
<b:if cond='data:blog.pageName == ""'>
<a expr:href='data:blog.homepageUrl'>Home</a> » All posts
<b:else/>    
<a expr:href='data:blog.homepageUrl'>Home</a> » Posts filed under <data:blog.pageName/>
</b:if>
</span>
</p>
</b:if>
</b:if>
</b:if>
</b:if>
</b:includable>
<b:includable id='main' var='top'>

Bước 4: Các bạn chèn đoạn code sau vào trước thẻ đóng ]]</b:skin>
.breadcrumbs {     
padding:5px 5px 5px 0px;      
margin: 0px 0px 15px 0px;      
font-size:95%;      
line-height: 1.4em;      
border-bottom:3px double #e6e4e3;      
}

Bước 5: Lưu Template Blogspot lại và hưởng thụ thành quả.

Code Tạo Bài Viết Liên Quan Cho Blogspot Gọn nhẹ

Code tạo Bài viết liên quan cho Blogspot gọn nhẹ là một việc khá quan trọng để tối ưu SEO cho Blogspot. Tất cả các bạn làm SEO đều hiểu rõ vì sao cần phải thêm bài viết liên quan cho website blog rồi đúng không nào.

Dưới đây mình sẽ tổng hợp các cách tạo bài viết liên quan cho Blog (Related posts blogger) để các bạn lựa chọn cho phù hợp với Blog của các bạn.

Cách làm thì có rất nhiều cách nhưng mình khuyên các bạn chỉ nên lựa chọn cách nào đơn giản gọn nhẹ thôi, màu mè quá sẽ làm blog của các bạn load chậm, thậm chí còn bị xung đột với các dòng code khác dẫn đến blog của bạn không chạy. Giống như blogspot của mình, mình đã chọn cách 1 đơn giản, gọn nhẹ mà nhìn vẫn rất chuyên nghiệp.

Các bạn lưu ý: Dù cách hướng dẫn thêm bài viết liên quan nào đi nữa thì code đều có 3 đoạn
- Đoạn 1: Code Javascript
- Đoạn 2: Code CSS
- Đoạn 3: Code HTML

Các bạn cùng lướt qua các cách dưới đây và chọn đoạn code thêm bài liên quan cho Blogspot của các bạn nhé.

Cách 1: Tạo bài viết liên quan cho Blog Gọn nhẹ nhất

Bước 1: Các bạn thêm đoạn code Javascript dưới đây vào Blog

<b:if cond="data:blog.pageType == &quot;item&quot;">
<script type="text/javascript">
//<![CDATA[
var titles=new Array();var titlesNum=0;var urls=new Array();var time=new Array();function related_results_labels(c){for(var b=0;b<c.feed.entry.length;b++){var d=c.feed.entry[b];titles[titlesNum]=d.title.$t;for(var a=0;a<d.link.length;a++){if(d.link[a].rel=="alternate"){urls[titlesNum]=d.link[a].href;time[titlesNum]=d.published.$t;titlesNum++;break}}}}function removeRelatedDuplicates(){var b=new Array(0);var c=new Array(0);e=new Array(0);for(var a=0;a<urls.length;a++){if(!contains(b,urls[a])){b.length+=1;b[b.length-1]=urls[a];c.length+=1;c[c.length-1]=titles[a];e.length+=1;e[e.length-1]=time[a]}}titles=c;urls=b;time=e}function contains(b,d){for(var c=0;c<b.length;c++){if(b[c]==d){return true}}return false}function printRelatedLabels(a){var y=a.indexOf('?m=0');if(y!=-1){a=a.replace(/\?m=0/g,'')}for(var b=0;b<urls.length;b++){if(urls[b]==a){urls.splice(b,1);titles.splice(b,1);time.splice(b,1)}}var c=Math.floor((titles.length-1)*Math.random());var b=0;document.write("<ul>");if(titles.length==0){document.write("
<li>Không có bài viết liên quan</li>
")}else{while(b<titles.length&&b<20&&b<maxresults){if(y!=-1){urls[c]=urls[c]+'?m=0'}document.write('
<li><a href="'+urls[c]+'" title="'+titles[c]+'">'+titles[c]+"</a></li>
");if(c<titles.length-1){c++}else{c=0}b++}}document.write("</ul>
");urls.splice(0,urls.length);titles.splice(0,titles.length)};
//]]>
</script>
</b:if>

Các bạn hãy vào phần chỉnh sửa HTMLcopy đoạn code ở trên dán vào trước thẻ </head>

Bước 2: Copy đoạn code CSS bên dưới dán vào phía trên dòng code </style>

#related-posts h4 {border-bottom:2px solid #83C75D; font-size:18px;}
#related-posts ul {border: medium none;padding: 0;font-size: 16px;}
#related-posts ul li {border-bottom:1px dotted #cccccc;margin-bottom:5px;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfjTUfjrUi7pq3nMXgiFBfD7jtPDaKcCVEt6msZwYJgYi1xbL9qTWrXB82hFbI8D_NcPsCUlLlDHkpCjRuDRxbTDY7n_Hj93daiq-ZVLi5_QUHazuUG5pl1nPhY2nH5nekIVWTM1B988I/h120/gicovietnam-blogspot-com.png) 0 5px no-repeat;padding-left:15px}

Bước 3: Copy đoạn code HTML bên dưới dán vào phía sau dòng code <data:post.body/>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div id='related-posts'>
 <h4>Bài viết liên quan</h4>
<b:loop values='data:post.labels' var='label'>
 <script expr:src='&quot;/feeds/posts/default/-/&quot; + data:label.name + &quot;?alt=json-in-script&amp;callback=related_results_labels&quot;' type='text/javascript'/>
</b:loop>
<script type='text/javascript'>var maxresults=10;removeRelatedDuplicates();printRelatedLabels(&#39;<data:post.url/>&#39;);</script>
</div>
</b:if>

Các bạn thay đổi giá trị maxresults=10 cho phù hợp với blog. maxresults=10 là số lượng bài viết liên quan được hiển thị.
Có thể trong Template của bạn sẽ có nhiều thẻ <data:post .body=""> nên bạn hãy thử từng cái một nhé, thử đến khi nào hiển thị đúng vị trí thì thôi.

Cách 2: Related Posts Widget for Blogger with Thumbnails

Bước 1: Vào Chủ đề > Chỉnh sửa HTML Chèn đoạn code bên dưới vào phía trên thẻ đóng </head>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<style type="text/css">
#related-posts {
float:center;
text-transform:none;
height:100%;
min-height:100%;
padding-top:5px;
padding-left:5px;
}
#related-posts h2{
font-size: 1.6em;
font-weight: bold;
color: black;
font-family: Georgia, &#8220;Times New Roman&#8221;, Times, serif;
margin-bottom: 0.75em;
margin-top: 0em;
padding-top: 0em;
}
#related-posts a{color:black;}
#related-posts a:hover{color:black;}
#related-posts a:hover {background-color:#d4eaf2;}
</style>
<script type='text/javascript'>
var defaultnoimage="https://dl.dropboxusercontent.com/s/dbx17abibjnsjz6/noimage.png";    
var maxresults=5
var splittercolor="#d4eaf2";
var relatedpoststitle="Related Posts";
</script>
<script type='text/javascript' src='https://dl.dropboxusercontent.com/s/t455sb1290tmgh6/related_posts_with_thumbnails_min.js' />    
</b:if>

Bước 2: Tìm trong Template của bạn đoạn code tương tự như bên dưới:
<div class='post-footer-line post-footer-line-1'>

hoặc
<div class='post-footer-line post-footer-line-2'>

và ngay lập tức bên dưới nó chèn đoạn code sau:
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div id='related-posts'>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.isLast != &quot;true&quot;'>
</b:if>
<script type='text/javascript' expr:src='&quot;/feeds/posts/default/-/&quot; + data:label.name + &quot;?alt=json-in-script&amp;callback=related_results_labels_thumbs&amp;max-results=6&quot;' />
</b:loop>
<script type='text/javascript'>
removeRelatedDuplicates_thumbs();
printRelatedLabels_thumbs(&quot;<data:post.url/>&quot;);
</script>
</div>
<div style='clear:both'/>
</b:if>
<b:if cond='data:blog.url == data:blog.homepageUrl'><b:if cond='data:post.isFirstPost'>    
<a href='https://gicovietnam.blogspot.com/2017/06/code-tao-bai-viet-lien-quan-cho-blogsot.html'>
<img style="border: 0" alt="Related Posts Widget For Blogger with Thumbnails" src="http://image.bloggerplugins.org/blogger-widgets.png"/></a>
<a href='https://gicovietnam.blogspot.com'>
<img style="border: 0" alt="Kiến thức – Thủ thuật – Giải pháp công nghệ" src="http://image.bloggerplugins.org/blogger-templates.png"/></a>    
</b:if></b:if>

Bước 3: Thay thế đoạn code màu đỏ theo ý bạn và Save Template.

Cách 3: Related Posts by Categories

Bước 1: Vào Chủ đề > Chỉnh sửa HTML Tìm trong Template của bạn đoạn code sau
<data:post.body/>

và ngay sau nó chèn đoạn code bên dưới:
<b:if cond='data:blog.pageType == "item"'>
<div class='similiar'>
  <div class='widget-content'>
        <h3>Related Posts by Categories</h3>
        <div id='data2007'/><br/><br/>
            <script type='text/javascript'>   
            var homeUrl3 = &quot;<data:blog.homepageUrl/>&quot;;
            var maxNumberOfPostsPerLabel = 4;
            var maxNumberOfLabels = 10;
            maxNumberOfPostsPerLabel = 10; 
            maxNumberOfLabels = 3;
            function listEntries10(json) {
              var ul = document.createElement(&#39;ul&#39;);
              var maxPosts = (json.feed.entry.length &lt;= maxNumberOfPostsPerLabel) ?
                             json.feed.entry.length : maxNumberOfPostsPerLabel;
              for (var i = 0; i &lt; maxPosts; i++) {
                var entry = json.feed.entry[i];
                var alturl;
                for (var k = 0; k &lt; entry.link.length; k++) {
                  if (entry.link[k].rel == &#39;alternate&#39;) {
                    alturl = entry.link[k].href;
                    break;
                  }
                }
                var li = document.createElement(&#39;li&#39;);
                var a = document.createElement(&#39;a&#39;);
                a.href = alturl;
                if(a.href!=location.href) {
                    var txt = document.createTextNode(entry.title.$t);
                    a.appendChild(txt);
                    li.appendChild(a);
                    ul.appendChild(li);
                }
              }
              for (var l = 0; l &lt; json.feed.link.length; l++) {
                if (json.feed.link[l].rel == &#39;alternate&#39;) {
                  var raw = json.feed.link[l].href;
                  var label = raw.substr(homeUrl3.length+13);
                  var k;
                  for (k=0; k&lt;20; k++) label = label.replace(&quot;%20&quot;, &quot; &quot;);
                  var txt = document.createTextNode(label);
                  var h = document.createElement(&#39;b&#39;);
                  h.appendChild(txt);
                  var div1 = document.createElement(&#39;div&#39;);
                   div1.appendChild(h);
                  div1.appendChild(ul);
                  document.getElementById(&#39;data2007&#39;).appendChild(div1);
                }
              }
            }
            function search10(query, label) {
            var script = document.createElement(&#39;script&#39;);
            script.setAttribute(&#39;src&#39;, query + &#39;feeds/posts/default/-/&#39;
             + label +
            &#39;?alt=json-in-script&amp;callback=listEntries10&#39;);
            script.setAttribute(&#39;type&#39;, &#39;text/javascript&#39;);
            document.documentElement.firstChild.appendChild(script);
            }
            var labelArray = new Array();
            var numLabel = 0;
            <b:loop values='data:posts' var='post'>
              <b:loop values='data:post.labels' var='label'>
                textLabel = &quot;<data:label.name/>&quot;;
                var test = 0;
                for (var i = 0; i &lt; labelArray.length; i++)
                if (labelArray[i] == textLabel) test = 1;
                if (test == 0) {
                   labelArray.push(textLabel);
                   var maxLabels = (labelArray.length &lt;= maxNumberOfLabels) ?
                          labelArray.length : maxNumberOfLabels;
                   if (numLabel &lt; maxLabels) {
                      search10(homeUrl3, textLabel);
                      numLabel++;
                   }
                }
              </b:loop>
            </b:loop>
            </script>
    </div>
</div>
</b:if>

Bước 3: Thay đổi code màu đỏ theo ý bạn, trong đó:
maxNumberOfPostsPerLabel: số bài viết tối đa được hiển thị theo mỗi Label
maxNumberOfLabels: số Label được hiển thị

Cách 4: Related Posts v2.0 by Anhvo
Bước 1: Vào Chủ đề > Chỉnh sửa HTML Tìm trong Template của bạn đoạn code tương tự như bên dưới:

<div class='post-footer-line post-footer-line-1'>

hoặc
<div class='post-footer-line post-footer-line-2'>

hoặc
<div class='post-footer-line post-footer-line-3'>

và chèn bên dưới nó đoạn code này:
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div id='post-labels-for-related' style='display:none'>
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<data:label.name/>
<b:if cond='data:label.isLast != &quot;true&quot;'>
</b:if>
</b:loop>
</b:if>
</div>
<div id='post-timestamp-for-related' style='display:none'>
<data:post.timestampISO8601/>
</div>
<style type='text/css'>
#related-posts-block {margin:10px 5px 0 -20px;font-size:12px;color:#999999;text-transform:none;}    
#related-posts-block #related-posts-loading-text{font-size:18px;color:#FF0033;text-align:center;}    
#related-posts-block #related-newest-href {margin:10px 5px;}    
#related-posts-block #related-newest-href ul{list-style-image:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU7sL2PGIv2jW5Lo18xHhBUwJLrS_6JIzsVv0kIVXWA_mZabBLt3ANzYkbUo08pELQhmCGSEeldNC7sTupS1m8EEtL1lJiGMhvxDOdVTaXIPnn9g4BEHaY_jwsgroPRgMvBvpZ9W38tEc/);}    
#related-posts-block #related-newest-href #related-newest-title {font-size:16px;margin:10px 5px}    
#related-posts-block #related-newest-href a{font-size:12px;font-family:Arial, Helvetica, sans-serif;color:#000000;}    
#related-posts-block #related-older-href {margin:10px 5px;}    
#related-posts-block #related-older-href ul{list-style-image:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU7sL2PGIv2jW5Lo18xHhBUwJLrS_6JIzsVv0kIVXWA_mZabBLt3ANzYkbUo08pELQhmCGSEeldNC7sTupS1m8EEtL1lJiGMhvxDOdVTaXIPnn9g4BEHaY_jwsgroPRgMvBvpZ9W38tEc/);}    
#related-posts-block #related-older-href #related-older-title {font-size:16px;margin:10px 5px}    
#related-posts-block #related-older-href a{font-size:12px;font-family:Arial, Helvetica, sans-serif;color:#000000;}    
</style>
<div id='related-posts-block'>
<div id='related-posts-loading-text'>Loading related posts... <img align='absmiddle' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF8LNN0koaZFKcn1uCTqvnflsmRLuNZL5X0wsetpzY61uqtLDSxX2cpVqeXR-3aYUgUxqtpLYwbrMgTaA_NayqnEW1saWg7pADrS13J_0aJklHlHNb9ehWV9HtDU7BTfpy2noa6NX7z1k/'/></div>
<div id='related-newest-href'><div id='related-newest-title'/></div>
<div id='related-older-href'><div id='related-older-title'/></div>
</div>
</b:if>

Bước 2: Chèn đoạn code bên dưới trước thẻ đóng </body>

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<script type='text/javascript'>
//<![CDATA[
var showdate = false;
var max_post = 12;
//]]>
</script>    
<script type='text/javascript'>
//<![CDATA[
function format(ptime){
    return ptime.substr(0,19);
}
function formatdate(d){
    var month = [1,2,3,4,5,6,7,8,9,10,11,12];
    var month2 = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
    var m = parseInt(d.substring(5,7),10);
    for(var j=0; j<month.length;j++){
        if(m==month[j]){
            m = month2[j]; break;
        }
    }
    return d.substring(8,10) + "-" + m + "-" + d.substring(0,4);
}
function getRelatedNewestLinks(json){
    var entry = json.feed.entry;
    if(entry){
        for(var k=0;k<entry.length;k++){
            var li = document.createElement("li");
            if(showdate){
 li.innerHTML = "<a href='"+entry[k].link[4].href+"'>"+entry[k].title.$t+"</a>" + '- <i>' + formatdate(entry[k].published.$t) +'</i>';
            }
            else {li.innerHTML = "<a href='"+entry[k].link[4].href+"'>"+entry[k].title.$t+"</a>";}    
            if(!checkRelaxLinks("related-newest-href",entry[k].link[4].href)){
                document.getElementById("related-newest-href-ul1").appendChild(li);
 document.getElementById("related-newest-title").innerHTML = "<img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLfe25JO86AeloUL9EpGnCAvbb-rINY1GHJDwELi3k4z4ISo2qambgvY8mCGCDf9Yigk4MICM5ZexWRs72cX7eDZsiHGAAMfITrCiGzg-naK1rFBYKezRcFH5b9GM1XdHUcIW6wVO7I3o/' width='347' height='21'>"
            }
        }
    } else {document.getElementById("related-older-title").innerHTML = "Không có bài nào mới hơn cùng chủ đề";}
}
function getRelatedOlderLinks(json){
    var entry = json.feed.entry;
    if(entry){
        for(var k=0;k<entry.length;k++){
            var li = document.createElement("li");
            if(showdate){
 li.innerHTML = "<a href='"+entry[k].link[4].href+"'>"+entry[k].title.$t+"</a>" + ' - <i>' + formatdate(entry[k].published.$t) + '</i>';
            }
            else {li.innerHTML = "<a href='"+entry[k].link[4].href+"'>"+entry[k].title.$t+"</a>";}    
            if(!checkRelaxLinks("related-older-href",entry[k].link[4].href)){
                document.getElementById("related-older-href-ul2").appendChild(li);
 document.getElementById("related-older-title").innerHTML = "<img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs-8KsoYDWXMRn4KUm7FT07rve1Iu0YVnNmhP9jCrf-93BsQJ6UkZQ0ninNiCILfviEJwT9XCDya-Q7z-US_KCoC5CscRRnyna5k6So3AAQHXmDvKj-svRKziWjqNYD2BDZ1-q9IzEujY/' width='347' height='21'>"
            }
        }
    } else {document.getElementById("related-older-title").innerHTML = "Không có bài nào cũ hơn cùng chủ đề";}    
        document.getElementById("related-posts-loading-text").style.display = "none";
}
function createRelatedJson(min_or_max,cRJ_label,fcn_callback,cRJ_max){
    var script = document.createElement("script");
 script.src = "/feeds/posts/summary/-/"+escape(cRJ_label)+"?orderby=published&max-results="+cRJ_max+"&published-"+min_or_max+"="+escape(format(document.getElementById("post-timestamp-for-related").innerHTML))+"&alt=json-in-script&callback="+fcn_callback;
 script.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(script);
}
function checkRelaxLinks(cid,clink){
    var check = false;
    var u = document.getElementById(cid);
    var a = u.getElementsByTagName("a");  
    for(var i=0;i<a.length;i++){
        if(a[i].href==clink){
            check = true;
            break;
        }
    }
    var url = location.href.split(".html")[0]+".html";
    if(clink==url) check = true;
    return check;
}
function createRP(){
    var postLabel = document.getElementById("post-labels-for-related").innerHTML.split(',');
    var max_ = Math.round(max_post/postLabel.length);
    var ul1 = document.createElement('ul');
    ul1.id = 'related-newest-href-ul1';
    document.getElementById('related-newest-href').appendChild(ul1);
    for(var i=0; i<postLabel.length;i++){
         createRelatedJson("min",postLabel[i],"getRelatedNewestLinks",max_);
    }
    var ul2 = document.createElement('ul');
    ul2.id = 'related-older-href-ul2';
    document.getElementById('related-older-href').appendChild(ul2);
    for(var j=0; j<postLabel.length;j++){
         createRelatedJson("max",postLabel[j],"getRelatedOlderLinks",max_);
    }
}
createRP();
//]]>
</script>    
</b:if>

Trong đoạn code trên:
var showdate = false; nếu muốn hiện thị ngày đăng thì thay false thành true
var max_post = 12; số bài viết tối đa hiển thị là 12 bài.