Your Keyword Here!

ซ่อน/แสดงหน้า widget ในแต่ละหน้า

Wednesday, August 7, 2013

หลังจากที่เราใส่ Widget(Gadget) ใน blogger มันก็จะแสดงทุกหน้าเพราะมันถูกตั้งค่าพื้นฐานมาอย่างนั้น แต่จากใช้งานจริงเราบางหน้าเราไม่ต้องการให้แสดง Widget หรือแสดงบาง Widget บางทีก็อยากให้เป็นหน้าที่ไม่มี Widget เลย นู่น นี่ นั่น แล้วแต่ว่าอยากให้หน้าตา blog ของเราออกมาเป็นอย่างไร


ก่อนเริ่มมาทำความเข้าใจลักษณะคำสั่งของ Widget ก่อนดีกว่ามองภาพกว้างๆให้เข้าใจไปเลยจะได้ไม่ต้องมาอ่านกันหลายๆรอบ (ความจริงเข้ามาอ่านบ่อยๆมันก็ดีกับผมนะ แต่คงเสียเวลาคุณน่าดู) มองภาพ กว้างๆพอเห็นไอเดียแล้วค่อยลงมือทำให้มันเข้าใจ (อย่าบอกว่าทำได้ถ้ายังไม่ได้ทำ)

ลักษณะโค้ดของ Widget ที่จะไปอยู่ใน template (แม่แบบ) มันจะไปสั่งให้แสดง content (เนื้อหา) ของ Widget  โดยมันเป็นคำสั่งทั่วไปที่จะแสดงทุกหน้า(ทุก page)  อาจมีเงื่อนไข(conditional tags)ของมันประกอบเช่นว่า แสดงเมื่อมีข้อมูลเช่น Widget "Profile" มันก็จะสั่งให้ template แสดงรายละเอียดของเจ้าของ blog


เราจะกำหนดให้มันแสดงหรือไม่แสดงในหน้าไหนก็ได้ตามใจเรา โดยการใส่เงื่อนไข(conditional tags) เพิ่มเข้าไปใน Widget เช่นเงื่อนไขว่า "ถ้าเป็นหน้าแรก(homepage) ให้แสดง Widget" คำว่า "ถ้าเป็นหน้าแรก" ก็คือเงื่อนไขที่เราใส่ให้ Widget นี้ครับ คลิกเพื่อดูรายละเอียดของเงื่อนไขต่างๆ การกำหนดเงื่อนไขการแสดงผลให้หน้าเว็บ

ลักษณะตัวอย่างที่เอาไปประยุกต์ใช้บ่อยๆ เช่น 

  • ให้แสดงแค่หน้าแรก 
  • ไม่ให้แสดงในหน้านี้เลย 
  • ไม่ให้บาง gadget แสดงในหน้านี้ 
  • ให้แสดงเฉพาะหน้าที่กำหนด

อ้อสำคัญ วิธีนี้ใช้ไม่ได้กับ gadget ป้ายกำกับ(Labels) คลังบทความ(Archive) และ ผู้ติดตาม(Followers) กับ gadget พวกนี้ต้องใช้ CSS ครับ


Hide/Display Widget on specific pages for Blogger
1. เราต้องรู้ Widget ID (ก็ ID ของ Gadget นั่นแหละครับ) หรือ Section ID ของเราที่ต้องการแก้ไขการแสดงผล
เพื่อจะได้ไปใส่เงื่อนไขให้ถูกอันน่ะครับ ประมาณว่าอยากโทรหาหญิงก็ต้องรู้เบอร์เค้าสุ่มโทรไปทั่วคงไม่ได้คุย ไปนู่นเลย และ Section ID ก็คือ ID ของพื้นที่แสดงผลส่วนต่างๆคลิกที่นี่เพื่อดูวิธีการหา ID ของ Widget และ Section


 2. ไปดู HTML code ของ Widget หรือ Section ที่จะแก้ไข
  2.1 ไปที่ Template(แม่แบบ)>Edit HTML (คือคลิกที่ Template พอมาหน้า Template แล้วก็คลิก Edit HTML)
    2.2  หา Widget หรือ Section ในกล่อง HTML code โดยกด Ctrl+f (คลิกในกล่อง HTML code ก่อนสักทีนึงนะ search box จะได้อยู่ในกล่อง HTML code) ก็ใส่ ID ที่เราจะไปแก้ไขกด Enter มันก็จะพาเราไปอยู่ที่คำค้นหาจะมีแถบสีแสดงอยู่
     2.3  คลิกเพื่อขยาย code ออก (คลิกที่สามเหลี่ยมดำเล็กๆใน code box ทางซ้ายบรรทัดเดียวกับ ID)
       2.4.  คลิกขยายอีกครั้งที่บรรทัด <b:includable id='main'> (อยู่ถัดไปด้านล่างบรรทัดของ ID)
หน้าตาโค้ดของก็จะออกมาประมาณนี้แต่อาจแตกต่างไปในบาง widget ไม่ต้องตกใจบทความนี้ให้สนใจแค่ 2 บรรทัด คือ <b:includable id='main'> 
 และ </b:includable> code ที่อยู่ระหว่างสองบรรทัดนี้ก็คือ content ของ widget 


3. เลือกเงื่อนไข(conditional tags) โดยเลือกจากบทความนี้ก็ได้ครับ กำหนดเงื่อนไขการแสดงผลให้หน้าเว็บ copy เงื่อนไขที่จะใช้มาเลย 


4. วางเงื่อนไขเข้าไปใน code
    4.1 วางโค้ดที่เรา copy มาจากขั้นที่ 3. ไว้ต่อจาก <b:includable id='main'> 
    4.2 วาง </b:if> ไว้ตรงหน้า </b:includable> (อ่าน Note ท้ายบทความก่อนวาง tag นี้)
ตามภาพตัวอย่างด้านล่าง (โค้ดของคุณอาจแตกต่างไปแล้วแต่ widget) 


5. คลิก Save Template แล้วก็ไปดูผลงานเลย

Note: บางคนพอใจบางคนยังไม่จบเพราะว่าบาง Template ถึง widget มันไม่แสดงแต่พื้นหลังของมันยังแสดงอยู่ เพื่อแก้ไขตรงนี้ให้เราต้องเปลี่ยนโค้ดข้อ 4.2  </b:if> เป็น
<b:else/>
<style
type='text/css'>
#WidgetID {display:none;}/*to hide empty widget box*/
</style>
</b:if>

โดยเปลี่ยน WidgetID เป็น Widget ID ของเรา วางแล้วก็ Save Template ไปดูอีกรอบ
แค่นี้ครับ จบ

No comments:

Post a Comment