Blogger: กำหนดเงื่อนไขในการแสดงผล

ที่ผ่านมาบทความหลายอันของบล็อกนี้มักจะเขียนถึงคำสั่งที่ทำงานเมื่อผู้อ่านอยู่ในบางหน้าของบล็อก ส่วนในบทความนี้จะเขียนถึงวิธีประยุกต์คำสั่งต่างๆ ให้ทำงานตามเงื่อนไขที่เราต้องการ

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

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


ลักษณะของเงื่อนไขเบื้องต้น

โดยทั่วไปแล้วเงื่อนไขสำหรับการแสดงผลของ Blogger นั้นจะมีลักษณะคือ
<b:if cond='เงื่อนไข'>
คำสั่ง
</b:if>


ความหมายคือ
ถ้าหน้าที่ผู้เข้าชมกำลังเปิดอยู่นั้นตรงกับ 'เงื่อนไข' ที่เลือกไว้
ก็จะเกิดการทำงานตาม คำสั่ง ที่เรากำหนด


ประเภทของเงื่อนไขที่ทำงานเมื่อตรงตามสิ่งที่เราระบุ

มีผลคือคำสั่งเหล่านั้นจะทำงานก็ต่อเมื่อ ระบบตรวจสอบแล้วพบว่าเงื่อนไข 'ตรง' กับสิ่งที่เราเลือกไว้ ซึ่งมีหลายชนิดดังนี้

1. Index (list) pages
ทำงานเมื่อเปิดรายการบทความ รวมทั้งการเปิดหน้าแรก  การเข้าใช้ป้ายกำกับและคลังบทความของบล็อก
<b:if cond='data:blog.pageType == "index"'>

2. Post (item) pages
ทำงานเมื่อเปิดเนื้อหาบทความแบบเต็ม
<b:if cond='data:blog.pageType == "item"'>

3. Static pages
ทำงานเมื่อเข้าสู่หน้าเว็บอิสระของบล็อก
<b:if cond='data:blog.pageType == "static_page"'>

4. Archive pages
ทำงานเมื่อเข้าสู่คลังบทความของบล็อก
<b:if cond='data:blog.pageType == "archive"'>

5. Homepage
ทำงานเมื่อเปิดหน้าแรก
<b:if cond='data:blog.url == data:blog.homepageUrl'>

6. Specific page/URL
ทำงานเมื่อ URL ตรงตามระบุ
<b:if cond='data:blog.url == "PUT_URL_HERE"'>

7. Post and static pages
ทำงานเมื่อเปิดเนื้อหาบทความแบบเต็มหรือเข้าสู่หน้าเว็บอิสระ
<b:if cond='data:blog.url == data:post.url'>

8. Label-search pages
ทำงานเมื่อเลือกใช้ป้ายกำกับ
<b:if cond='data:blog.searchLabel'>

9. First post
ทำงานเมื่อเป็นบทความอันแรก
<b:if cond='data:post.isFirstPost'>


ประยุกต์ให้เงื่อนไขทำงานก็ต่อเมื่อไม่ตรงตามสิ่งที่ระบุ

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

ให้คำสั่งนั้นทำงานเมื่อ 'เปิด' เนื้อหาบทความแบบเต็ม เขียนว่า
<b:if cond='data:blog.pageType == "item"'>
คำสั่ง
</b:if>


ให้คำสั่งนั้นทำงานเมื่อ 'ไม่ได้เปิด' เนื้อหาบทความแบบเต็ม
หรือก็คือคำสั่งจะทำงานในหน้าอื่นๆ ทั้งหมดแต่ยกเว้นเฉพาะขณะเปิดบทความแบบเต็ม เขียนว่า
<b:if cond='data:blog.pageType != "item"'>
คำสั่ง
</b:if>



เงื่อนไขที่สลับการทำงานเมื่อต่างจากสิ่งที่ระบุ

ทำได้โดยใช้ <b:else/> คั่นระหว่างคำสั่ง
มีผลคือถ้าคำสั่งที่อยู่เหนือ <b:else/> ไม่ทำงานก็จะให้คำสั่งที่อยู่ใต้อ <b:else/> ทำงานแทน

ตัวอย่างเช่น
<b:if cond='data:blog.pageType == "item"'>
คำสั่งที่ 1
<b:else/>
คำสั่งที่ 2
</b:if>
ความหมายคือเมื่อเปิดหน้าเนื้อหาบทความแบบเต็มจะทำให้ 'คำสั่งที่ 1' ทำงาน แต่เมื่ออยู่ในหน้าอื่นๆ จะทำให้ 'คำสั่งที่ 2' ทำงานแทน


Credit: http://www.bloggersentral.com/2010/08/targeting-specific-pages-with.html

Post Status




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

Top-NungD กล่าวว่า...

แล้วจะต้องวางไว้ตรงไหน ? คำสั่งถึงจะทำงานคะ

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

โดยทั่วไปนั้นวางไว้หลังจาก
]]></b:skin>
ก็สามารถทำงานได้แล้วครับ

ซึ่งสามารถดูตัวอย่างที่โค้ดไม่ยาวมากนักได้ตามลิงก์ข้างล่างนี้
http://tip.maxlayout.com/2012/02/hide-all-posts-from-blogger-homepage.html

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