Blogger: แสดงหัวข้อบทความที่เกี่ยวข้องกัน


การใส่รายการบทความที่เกี่ยวข้องกัน (Related Posts) กับบทความที่กำลังถูกเปิดอยู่ จะช่วยให้ผู้อ่านบล็อกเข้าชมเนื่อหาที่มีความเกี่ยวข้องกันได้ง่ายขึ้นโดยทำได้ดังนี้

ขั้นตอนที่ 1. เข้าสู่บล็อกของคุณจากนั้นไปที่ 'การออกแบบ > แก้ไข HTML > ขยายแม่แบบเครื่องมือ'


ขั้นตอนที่ 2.  จัดวางรูปแบบลักษณะสไตล์
โดยกด 'Ctrl + F' บนคีย์บอร์ดแล้วสั่งค้นหาคำว่า
]]></b:skin>

จากนั้นให้แทนที่โค้ดที่หาเจอนั้นด้วยโค้ดข้างล่างนี้
<!--Related Posts Style Start-->
#related-posts {
  overflow: hidden;
  margin: 0;
  padding: 0;
}

#related-posts-box {
  background: #ffffff url('http://lh5.ggpht.com/_HNH4qHggrsw/TUZV8l6Y6bI/AAAAAAAAC1g/tQHxFtDDwZY/skyline-paper-top-003.png') repeat-x scroll top left;
  border: solid 1px #cccccc;
  margin: 10px 0 10px;
  padding: 0 10px 5px;
}

#related-posts-title {
  background: transparent  url('http://lh3.ggpht.com/_HNH4qHggrsw/TTE8r25yEyI/AAAAAAAACyQ/Ue5te04Ad6k/related-post-icon-header.png') no-repeat 0px 5px;
  color: #2d4247;
  border-bottom: solid 1px #cccccc;;
  padding : 14px 0 0 38px;
}

#related-posts-title h2 {
  font-size: 120%;
}

#related-posts a {
  background: transparent url('http://lh5.ggpht.com/_HNH4qHggrsw/TTE8sKtDcoI/AAAAAAAACyY/9vXWNSTm_Fk/related-post-icon-list.png') no-repeat 10px 50%;
  color: #303843;
  padding: 9px 0 9px 40px;
  display: block;
  border: none;
}

#related-posts ul li {
  list-style: none;
  border: none;
  margin: 0 0 0 -15px;
  padding: 0px;
}

#related-posts ul li a:hover {
  background: #f9f7f0 url('http://lh4.ggpht.com/_HNH4qHggrsw/TTE8r6anIyI/AAAAAAAACyU/IFWCVLLc8hI/related-post-icon-hover.png') no-repeat 10px 50%;
  color: #303843;
  border: none;
  display: block;
  padding: 9px 0 9px 40px;
}
<!--Related Posts Style End-->

]]></b:skin>



ขั้นตอนที่ 3. วางสคริปต์
โดยกด 'Ctrl + F' บนคีย์บอร์ดแล้วสั่งค้นหาคำว่า
   <b:template-skin>

จากนั้นให้แทนที่โค้ดที่หาเจอนั้นด้วยโค้ดข้างล่างนี้
<script type='text/javascript'>
//<![CDATA[
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() {
var r = Math.floor((relatedTitles.length - 1) * Math.random());
var i = 0;
document.write('<ul>');
while (i < relatedTitles.length && i < 20) {
document.write('<li><a href="' + relatedUrls[r] + '">' + relatedTitles[r] + '</a></li>');
if (r < relatedTitles.length - 1) {
r++;
} else {
r = 0;
}
i++;
}
document.write('</ul>');
}
//]]>
</script>

    <b:template-skin>



ขั้นตอนที่ 4. วางตำแหน่งของกล่องแสดงบทความที่เกี่ยวข้อง
โดยกด 'Ctrl + F' บนคีย์บอร์ดแล้วสั่งค้นหาคำว่า
<b:includable id='status-message'>
ซึ่งสังเกตว่าจะพบโค้ดเหมือนกับสองบรรทัดด้านล่างนี้ซึ่งเป็นเป้าหมายการแก้ไขโค้ดในขั้นตอนนี้
</b:includable>
<b:includable id='status-message'>

จากนั้นให้แทนที่โค้ดทั้งสองบรรทัดซึ่งเป็นเป้าหมายนั้นด้วยโค้ดข้างล่างนี้
<!--RELATED-POSTS-BOX-STARTS-->
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div id='related-posts'>
<div id='related-posts-box'>
<div id='related-posts-title'>
<h2>Related Posts:</h2>
</div>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.isLast != &quot;true&quot;'/><b:if cond='data:blog.pageType == &quot;item&quot;'>
<script expr:src='&quot;/feeds/posts/default/-/&quot; + data:label.name + &quot;?alt=json-in-script&amp;callback=related_results_labels&amp;max-results=5&quot;' type='text/javascript'/></b:if></b:loop>
<script type='text/javascript'> removeRelatedDuplicates(); printRelatedLabels();
</script></div></div></b:if>
<!--RELATED-POSTS-BOX-STOPS-->

</b:includable>
<b:includable id='status-message'>



ขั้นตอนที่ 5. เลือกที่ 'บันทึกแม่แบบ' จากนั้นลองเปิดบล็อกดูผลลัพธ์


อธิบายเพิ่มเติม
จำนวนในการแสดงหัวข้อบทความที่มีความเกี่ยวข้องกันนั้นจะถูกกำหนดจาก
โค้ดในขั้นตอนที่ 4 ในส่วนของ
<!--RELATED-POSTS-BOX-STARTS-->
ซึ่งในตัวอย่างนี้ได้ถูกเขียนกำหนดเอาไว้ว่า
max-results=5
ซึ่งจะส่งผลให้หัวข้อบทความที่มีความเกี่ยวข้องกันถูกแสดงออกมา 5 อัน
โดยสามารถกำหนดจำนวนหัวข้อที่ถูกแสดงออกมาโดยเปลี่ยนจากเลข 5 ให้เป็นเลขที่ต้องการได้เลยครับ

นอกจากนี้หากต้องการแก้ไขรูปภาพ สี หรือลักษณะสไตล์ต่างๆ ของกล่องบทความที่เกี่ยวข้องอันนี้ ให้ไปแก้ไขในขั้นตอนที่ 2 ตั้งแต่ที่เขียนว่า <!--Related Posts Style Start--> ไปจนถึง <!--Related Posts Style End--> ให้เป็นแบบที่ชอบได้เลย

Credit: http://www.anshuldudeja.com/2009/03/related-posts-widget-for-blogger.html

Post Status




11 ความคิดเห็น:

Shawakorn Oilbamrung กล่าวว่า...

โอ้ววว หามานาน ขอบคุณมากครับ
กำลังหัดทำเว็บบล็อกครับ ซึ่งข้อมูลเก่าๆที่หาเจอนั้น ใช้ไม่ได้แล้ว

อีกอย่างครับ อยากจะให้มันขึ้นแค่ 5 โพส แต่ของผมมันขึ้นมา 6 เลย
แก้ตรงไหนได้บ้างครับ
เว็บนี้เลยครับ
www.iViewApp.net

Max กล่าวว่า...

จำนวนในการแสดงหัวข้อบทความที่เกี่ยวข้องกันนั้นจะถูกกำหนดจาก
โค้ดในขั้นตอนที่ 4 โดยในตัวอย่างนี้ได้เขียนเอาไว้ว่า
max-results=5
ซึ่งจะส่งผลให้หัวข้อบทความถูกแสดงออกมา 5 อัน

ดังนั้นสามารถกำหนดจำนวนหัวข้อที่ถูกแสดงออกมาโดยเปลี่ยนจากเลข 5 ให้เป็นเลขที่ต้องการได้เลยครับ
นอกจากนี้ผมได้นำวิธีแก้ไขไปเขียนเพิ่มไว้ในบทความแล้วครับ

Guiceza191 กล่าวว่า...

โค๊ด หาไม่เจอครับ

Max กล่าวว่า...

ในปัจจุบันนี้เมนูของบล็อกเกอร์มีการเปลี่ยนแปลงบางส่วน ดังนั้นวิธีในขั้นตอนที่ 1 ให้ลองทำดังนี้

เข้าสู่บล็อกของคุณจากนั้นไปที่ 'แม่แบบ > แก้ไข HTML > ดำเนินการ > ขยายเทมเพลตวิดเจ็ต'
แล้วก็ทำตามขั้นตอนที่ 2 ต่อได้เลยครับ

somchai sangkaew กล่าวว่า...

หาโค้ด นี้ไม่ เจอครับ ทำไง่ ต่อดีอะ ครับ



ผมอยู่ขั้นตอนที่ 3 อยู่เลย ครับ

Max กล่าวว่า...

ใช้วิธีกดปุ่ม Ctrl + F เพื่อสั่งค้นหาครับ
เพราะโค้ดในขั้นตอนที่ 3 นี้จะมีในเทมเพลทพื้นฐานของ Blogger อยู่แล้ว

roockicekub กล่าวว่า...

พี่ครับผมทำไม่ได้เลยครับ เวลาบันทึกไม่ก็แจ้งเตือนว่าโค๊ดไม่ถูกอะครับเป็นตัวแดงๆทำอย่างไรดีครับ

Max กล่าวว่า...

ถ้าจะให้ตรวจสอบได้สะดวกหน่อยก็สามารถทำได้โดย เมื่อแทนที่โค้ดในแต่ละขั้นตอนเสร็จแล้วก็ให้กดปุ่ม "บันทึกเทมเพลท" ก่อนที่จะเริ่มทำขั้นตอนถัดมา โดยถ้าหากว่ามีข้อความสีแดงโผล่ขึ้นมาหลังจากแก้ไขโค้ดตามขั้นตอนไหนก็หมายความว่าขั้นตอนที่เพิ่งทำเสร็จนั้นทำผิดพลาดครับ

pongthip noita กล่าวว่า...

ไม่มีกล่องแสดง
http://babbanidea.blogspot.com

Max กล่าวว่า...

ถ้าแทนที่โค้ดครบทุกขั้นตอนจะพบกล่อง Related Posts แบบเดียวกับที่กำลังแสดงอยู่ในบล็อกนี้ครับ

Jaktra Boonbuthong กล่าวว่า...

ถ้าจะทำให้ related โพสแสดงหลายๆอัน แต่ กำหนด กรอบให้ มีความสูง ความกว้าง แล้วทำให้สามารถมีสกอบาร์ เลื่อนลงมาได้ไหมครับ

แสดงความคิดเห็น