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, iTechPlus sẽ giới thiệu đến các bạn một số Style để các bạn lựa chọn, bắt đầu với tiện ích Recent Posts giống iTechPlus.info.
Hình minh họa
* Cách thực hiện :
1. Vào Thiết kế > Phần tử trang
2. Tạo một widget HTML\JavaScript và dán vào đoạn code bên dưới :
<style type="text/css">* Trong đoạn code trên :
#itechplus-rc {width:260px;margin:0;padding:10px;overflow:hidden;border:1px solid #ccc;background:#fff}
.itechplus-rc h2{background:#39c;color:#fff;line-height:1.6em;margin:0 0 10px;padding:4px 10px;font-weight:bold}
.itechplus-rc ul{list-style:none;margin:0;padding:0}
.itechplus-rc li{text-indent:0;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhac4LJuJXEuY1_8bAUuB-H5j8-uVOXVNupcTSqyUKgz9QdtRxJ8UwyN5EioSOeL6sOONxE98eEfCLW_IFG0d_iKEO-pKybhlPYDj2yu5U8uUyB2v-FF1P9gHTQ1crMHAt38-SvV5BOSJ4T/) no-repeat 0 7px;line-height:1.5em;margin:0;padding:2px 0 2px 15px}
.itechplus-rc h2 a:link, .itechplus-rc h2 a:visited {color:#fff}
</style>
<div id="itechplus-rc" class="itechplus-rc">
<h2><a href="http://www.itechplus.info/search/label/Office?&max-results=8">Tin học văn phòng</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="itechplus-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://www.itechplus.info/feeds/posts/default/-/Office?max-results="+numposts+"&orderby=published&alt=json-in-script&callback=showrecentposts\"><\/script>");
//]]>
</script>
</div>
- 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 )
* 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://www.itechplus.info/feeds/posts/default/-/Office?max-results="+numposts+"&orderby=published&alt=json-in-script&callback=showrecentposts\"><\/script>");
thành
document.write("<script src=\"http://www.itechplus.info/feeds/posts/default?max-results="+numposts+"&orderby=published&alt=json-in-script&callback=showrecentposts\"><\/script>");
3. Save and Done.
* Update : một số bạn yêu cầu chèn 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">
#itechplus-rc {width:260px;margin:0;padding:10px;overflow:hidden;border:1px solid #ccc;background:#fff}
.itechplus-rc h2{background:#39c;color:#fff;line-height:1.6em;margin:0 0 10px;padding:4px 10px;font-size:12px;font-weight:bold}
.itechplus-rc ul{list-style:none;margin:0;padding:0}
.itechplus-rc li{text-indent:0;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhac4LJuJXEuY1_8bAUuB-H5j8-uVOXVNupcTSqyUKgz9QdtRxJ8UwyN5EioSOeL6sOONxE98eEfCLW_IFG0d_iKEO-pKybhlPYDj2yu5U8uUyB2v-FF1P9gHTQ1crMHAt38-SvV5BOSJ4T/) no-repeat 0 7px;line-height:1.5em;margin:0;padding:2px 0 2px 15px}
.itechplus-rc h2 a:link, .itechplus-rc h2 a:visited {color:#fff}
</style>
<div id="itechplus-rc" class="itechplus-rc">
<h2><a href="http://www.itechplus.info/search/label/Office?&max-results=8">Tin học văn phòng</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/AVvXsEi9OLewAg7URjEM9cQrp8Nj-qXQWsvkB0vePp08GqKjINNEbGp00k-WQBpUBzBswUlxQG1rEWt1hm_cn0vzn2xvXSPTr5Mj86CMadbVqBQ81kzR62ta05j0BhlYTWDT83chhgUUSufInhg/";}
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="itechplus-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://www.itechplus.info/feeds/posts/default/-/Office?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
Các bạn có thể xem lại bài viết Bảng mã màu dành cho Blogger để chọn màu phù hợp. Ngoài ra, iTechPlus cũng đã có bài viết hướng dẫn rút gọn tiêu đề đối với những bài viết có tiêu đề quá dài, cũng như hiển thị đầy đủ mỗi khi rê chuột vào, các bạn có thể xem lại tại đây.
* Lưu ý : đoạn code trên có sử dụng một số hình ảnh mà iTechPlus.info sử dụng. Vì vậy, để tránh ảnh hưởng đến site này và blog bạn, vui lòng download về và upload lên host riêng để sử dụng.
Rất đơn giản phải không các bạn !
Chúc các bạn thành công !
Ý kiến bạn đọc [ 35 ]
Thủ thuật rất hay nhưng bạn có thể chính lại cho tựa đề bài viết rút gọn đc hem, chứ nhiều cái bài viết có tựa đề khá dài như vậy cái khung này dài ngắn khác nhau nhìn ko đẹp mắt lắm. Thanks bạn mong có nhiều thủ thuật hay nữa ^^
Ok ! Mình sẽ update sau.
Nếu đc thì bạn có thể làm rút gọn tiêu đề bài viết nhưng khi rê chuột vào thì hiện đầy đủ tiêu đề bài viết lun
Ah web bạn dùng tiện ích nào để chia phần trang chủ ra 2 phần ràu cho 2 tiện ích recent xuất hiện trên cùng 1 hàng vậy
Mình sẽ update cho bạn sau khi có thời gian. Hiện giờ đang "lu bu" quá ! (^_^)
Đã post thủ thuật theo yêu cầu của bạn. Xem tại đây
Bạn ơi mình mún chia phần post ra làm 2 phần để chèn widget giống ngoài trang chủ của bạn thì làm sao nhỉ???
À, cái này chỉ chèn một đoạn code css vào template là được thôi. Mình sẽ post hướng dẫn trong thời gian sớm nhất có thể. Bạn theo dõi nhé !
Mình nghĩ bạn nên cải tiến thêm cho tiện ích này ^^, chẳng hạn như những bài viết ko có hình ảnh thì sẽ có hình riêng cho những bài đó hoặc nếu có thể thì bạn chỉnh tiện ích này khi rê chuột vào link thì sẽ xuất hiện title, chữ, hình ảnh của bài đó chẳng hạn.
Ok mình sẽ update sau. Còn vụ hiển thị nội dung và hình ảnh khi rê chuột thì mình sẽ giới thiệu ở tiện ích khác.
bạn hướng dẫn mình tùy biến màu chữ với
mình muốn màu chữ tiêu đề bài đầu màu tím chẳng hạn :D
Đã update bài viết theo yêu cầu của các bạn. Các bạn xem lại nhé !
Bạn qua xem giúp mình sao khi để tiện ích này trên mainpost thì các bài viết liên quan lại hiện một đường gạch ngang bên dưới mà mình để bên slide thì cái tiện ích này lại hiển thị bình thường.Xem giúp nhé cảm ơn nhiều
À, đó là do thuộc tính underline được áp dụng cho những liên kết trong bài viết. Để bỏ nó bạn search với từ khóa "body", tìm dòng text-decoration: underline; và thay thế thành text-decoration: none; là xong.
Chúc bạn thành công !
Mình muốn thay đổi độ rộng của khung hiển thị mà ko đc bạn à :( Có phải tùy chỉnh ở đoạn này ko bạn?
#itechplus-rc {width:260px...
@Bắp Cải : Đúng rồi đó bạn ! (^_^)
Cụ thể là như hình dưới đây. Main body của mình như thế, và mình chèn widget này vào chỗ mình khoanh đỏ, nhưng khi hiển thị thì nó chỉ hiển thị với độ rộng nhỏ hơn độ rộng của main body, mặc dù mình đã chỉnh độ rộng như trong đoạn code của bạn! Hi vọng bạn có thể giúp đỡ mình giải quyết vấn đề này!
http://www.anhtructuyen.com/?di=15130232043814
@Bắp Cải : bạn cung cấp url trang của bạn để mình test xem thế nào (link hathanglangtu không truy cập được)
http://www.baobapcai.info ^^ Bạn thử vào xem giúp mình với! Loạn xị ngậu hết cả rùi!
Bạn tìm trong template dòng "b:section class='main' id='main' showaddelement='no'" và sửa lại "no" thành "yes". Sau đó vào Phần tử trang ở phía trên phần "Bài đăng trên Blog" có section để tạo widget HTML và dán code của thủ thuật vào, sau đó sửa "#itechplus-rc {width:260px..." thành "#itechplus-rc {width:4800px..." là OK
Hic, mình đã làm thế! Nhưng khi F5 lại thì cái khung này nó chỉ hiện Full trong khoảng 1s (khi page chưa load hết), còn sau đó thì lại tự động co lai! Hic, bạn xem lại cho mình với!
Bạn phải tạo mới widget HTML tại section mới chứ không phải sử dụng lại những cái cũ theo kiều kéo thả. Nếu không được nữa thì gửi temp để mình edit dùm.
Bạn ơi, cho mình cái mail với!
Bạn gửi cho mình theo địa chỉ này : thanphong07@gmail.com
Có thể cho ảnh có link được không bạn, được thì hưỡng dẫn mình luôn nha
@Bmaster: cũng được nhưng không cần thiết bạn à ! Nếu bạn vẫn muốn vậy thì để lại mail mình send code qua nhé !::i
Mail mình nè
tin9new@gmai.com
cảm ơn bạn trước nha
Có cách nào canh đều "justify" cho thủ thuật này không vậy bạn?
Chắc chắn rồi ! Nhưng hiện mình đang có chút công chuyện nên hẹn bạn vài bữa nữa nhé !:-d
@peace19812006: bạn thêm thuộc tính "text-align:justify" vào id "#itechplus-rc", khi đó sẽ có dạng "#itechplus-rc {text-align:justify;...}"
Cấp cứu gấp! Sao mình áp dụng mình một số nhãn thì được, nhưng khi dùng nhãn khác thì blog không còn hiển thị đúng nữa. Cái rsidebar bị đưa vào dưới phần mainbody.
Chỉnh nhãn khác thì nó trở lại bình thường. Bị lỗi một số nhãn thôi. Không hiểu sao nữa
Xin admin cho mình hỏi:
Ở bài viết của bạn:Tiện ích Recent Posts giống iTechPlus.info, mình làm tương tự nhưng hình ảnh trong bài viết của mình lại không hiện lên!!!
Chỗ này: (list1 = 1; : số bài viết hiển thị kèm ảnh thumbnail) Nhưng trong blog của mình thì không hiện ảnh thumbnail.
Admin chỉ mình với!
mail của mình là: hoaidongkc@gmail.com
Thật lòng cảm ơn nhiều lắm!
BAN OI LÀM THẾ NÀO ĐỂ MÌNH CÓ ĐƯỜNG LINH NHƯ CỦA BẠN http://www.itechplus.info/feeds/posts/default/-/Office.GIÚP MÌNH NHÉ,MÌNH MỚI HỌC NÊN KO BIẾT ::V
Cám ơn Itechplus rất nhiều, mình đã tìm cách hiển thị theo lebel như thế này mà bây giờ mới thấy ::i
Đúng là không thể nào cho nó to ra được nó chỉ có ở 260 thôi
Cám ơn itechplus
Ý kiến của bạn
* Lưu ý :
- Vui lòng gõ tiếng Việt có dấu khi viết bình luận.
- Nội dung phải liên quan đến chủ đề bài viết.
- Không dùng lời lẽ khích bác, thô tục ảnh hưởng đến người khác.
- Không đặt link đến Blog/Web khác.
- Những góp ý, thắc mắc không liên quan các bạn vui lòng post tại đây.
Thân, iTechPlus.