Tạo bài viết liên quan trong Blogspot

Trong Blogspot, khi xem chi tiết 1 bài viết thì bên dưới bài viết sẽ xuất hiện một số bài viết liên quan nhằm đề đề xuất thu hút người đọc tiếp tục đọc bài viết khác (đây là 1 mẹo trong SEO nhằm duy trì thời gian để người đọc không thoát website của ta). Sau đây là một đoạn code đơn giản giúp bạn tạo thêm chức năng này.
Đây chỉ là hướng dẫn cơ bản nhất, có gì bạn viết bình luận bên dưới để mình hướng dẫn chi tiết hơn đối với blogspot của bạn. Nếu bạn muốn thay đổi kiểu hiển thị bài viết liên quan (như là hiển thị hình ảnh,...) thì bạn chỉ cần chỉnh sửa CSS và hàm printRelatedLabels trong code Javascript.

Vào Template -> Edit HTML, chọn nơi mà bạn cần hiển thị các bài viết liên quan, sau đó thêm vào các dòng code sau :
1. Code CSS : (dòng đầu tiên là gán CSS chỉ có hiệu lực trong trang chi tiết - trang item)
<b:if cond='data:blog.pageType == "item"'>
    <style type='text/css'>
        #related-posts {
            margin: 15px 5px;
        }
        
        #related-posts h2 {
            font-size: 27px;
            font-weight: normal;
            color: #fff;
            text-shadow: 1px 0px 2px #888;
            margin-bottom: 0.75em;
        }
        
        #related-posts a {
            font-size: 13px;
            color: #888;
            text-transform: capitalize;
        }
        
        #related-posts a:hover {
            text-decoration: none;
            color: #555;
        }
        
        #related-posts ul {
            list-style-type: none;
            margin: 0 0 0px 0;
            padding: 0px;
            text-decoration: none;
            color: #000000;
        }
        
        #related-posts ul {
            list-style-type: none;
            background: #f9f9f9;
            border-left: 5px solid #f2f2f2;
        }
        
        #related-posts li {
            padding: 10px;
            line-height: 1.4;
            border-bottom: 1px dotted #E2E2E2;
        }
        
        #related-posts li:hover {
            background: #F4F4F4;
        }
    </style>
</b:if>
2. Code Javascript:
var relatedpoststitle = "Bài viết liên quan";

var relatedTitles = new Array();
var relatedTitlesNum = 0;
var relatedUrls = new Array();

function related_results_labels(json) {
    for (var i = 0; i < json.feed.entry.length; i++) {
        var entry = json.feed.entry[i];
        relatedTitles[relatedTitlesNum] = entry.title.$t;
        for (var k = 0; k < entry.link.length; k++) {
            if (entry.link[k].rel == 'alternate') {
                relatedUrls[relatedTitlesNum] = entry.link[k].href;
                relatedTitlesNum++;
                break
            }
        }
    }
}

function removeRelatedDuplicates() {
    var tmp = new Array(0);
    var tmp2 = new Array(0);
    for (var i = 0; i < relatedUrls.length; i++) {
        if (!contains(tmp, relatedUrls[i])) {
            tmp.length += 1;
            tmp[tmp.length - 1] = relatedUrls[i];
            tmp2.length += 1;
            tmp2[tmp2.length - 1] = relatedTitles[i]
        }
    }
    relatedTitles = tmp2;
    relatedUrls = tmp
}

function contains(a, e) {
    for (var j = 0; j < a.length; j++) {
        if (a[j] == e) {
            return true
        }
    };
    return false
}

function printRelatedLabels(currenturl) {
    for (var i = 0; i < relatedUrls.length; i++) {
        if (relatedUrls[i] == currenturl) {
            relatedUrls.splice(i, 1);
            relatedTitles.splice(i, 1)
        }
    }
    var r = Math.floor((relatedTitles.length - 1) * Math.random());
    var i = 0;
    if (relatedTitles.length > 1) {
        document.write('<h2>' + relatedpoststitle + '</h2>')
    }
    document.write('<ul>');
    while (i < relatedTitles.length && i < 20 && i < maxresults) {
        document.write('<li><a href="' + relatedUrls[r] + '">' + relatedTitles[r] + '</a></li>');
        if (r < relatedTitles.length - 1) {
            r++
        } else {
            r = 0
        }
        i++
    }
    document.write('</ul>');
    relatedUrls.splice(0, relatedUrls.length);
    relatedTitles.splice(0, relatedTitles.length);
}

3. Code trong Edit HTML: (chú ý: code này chỉ có hiệu lực trong Template của Blogspot)
<b:if cond='data:blog.pageType == "item"'>
    <div id='related-posts'>
        <b:loop values='data:post.labels' var='label'>
            <b:if cond='data:label.isLast != "true"'> </b:if>
            <b:if cond='data:blog.pageType == "item"'>
                <script expr:src='"/feeds/posts/default/-/" + data:label.name + "?alt=json-in-script&amp;callback=related_results_labels&amp;max-results=6"' type='text/javascript' />
            </b:if>
        </b:loop>
        <script type='text/javascript'>
            var maxresults = 5;
            removeRelatedDuplicates();
            printRelatedLabels( & quot; < data: post.url / > & quot;);
        </script>
    </div>
</b:if>
Bài trước
Bài sau

Thíchcode.NET - Mang lại giải pháp cho coder. Nếu các bạn có gì khó khăn trong lập trình thì liên hệ chúng tôi (FanFace). Chúng tôi sẽ hỗ trợ miễn phí cho các bạn.

3 nhận xét:

  1. I like this tutorial, thanks for give sharing this to all together.
    Regards - Blot Tutorial Supporter

    Trả lờiXóa
  2. Thank you for your interest. If you need help on Blogspot, send me a message.

    Trả lờiXóa
  3. This is good tutorial, I really love it. thanks for sharing with us. Reade, True Cambodia Travel

    Trả lờiXóa

Hỗ trợ