สอนเขียน WordPress Theme ฉบับมือใหม่ตอนที่ 2 – ทำความรู้จักกับโครงสร้างและการเขียน PHP

เอาหล่ะครับหลังจากที่เราได้ลองสร้าง Theme WordPress แบบเปล่า ๆ แล้วลองกด Active ดูกันแล้ว และขั้นตอนต่อไปก็คือการทำให้ Theme แสดงผลตามที่เราต้องการครับ แต่ก่อนที่เราจะทำให้ Theme แสดงผลตามที่เราต้องการได้ เราต้องทำความเข้าใจก่อนครับว่าโครงสร้างเป็นอย่างไร และการเขียน PHP เพื่อดึงข้อมูลนั้นเขียนอย่างไร

ไฟล์ functions.php เหล่านักพัฒนาทุกคนก็จะทราบกันดีอยู่แล้วว่า ไม่ว่าจะเป็นการพัฒนาอะไรก็จะต้องมีจุดเริ่มต้นและในการพัฒนา สำหรับ WordPress Theme นั้นก็คือไฟล์ index.php อ้าว แล้วจะพูดถึง functions.php ทำไม นั้นก็เพราะว่าไฟล์ functions.php จะถูกโหลดเข้ามาในระบบแบบอัตโนมัตควบคู่กับไฟล์ index.php จริง ๆ มันถูกโหลดเข้ามาก่อนไฟล์ index.php ด้วยซ้ำไป ดังนั้นพวกคำสั่ง php ต่าง ๆ ที่เราต้องการให้ทำงานทุกหน้าเช่น การ enqueue CSS,JS หรือการเขียน function เฉพาะของเรา เราจะนิยมทำที่ functions.php **functions.php ไม่จำเป็นต้องมีก็ได้

คำสั่ง PHP ที่ WordPress จัดเตรียมไว้ให้ เรียกได้ว่ามีเยอะแยะมากมายมาก เช่น get_header, get_footer โดยตามหลักการแล้ว WordPress เค้าจะเรียกกันว่า Template Tags ครับ ส่วนถ้าเพื่อน ๆ อยากรู้ว่ามีคำสั่งอะไรบ้างและแต่ละคำสั่งใช้งานอย่างไร สามารถเข้าไปชมรายละเอียดเพิ่มเติมได้ที่ WordPress Template Tags ส่วนนี้ผมคงไม่อธิบายทุก function นะครับ เพราะมันเยอะมาก

เรารู้แล้วนะครับว่าเราสามารถนำ PHP ไปใส่ไว้ที่ functions.php ได้ โดยเฉพาะกรณีที่มีการเรียกใช้งานทุกหน้า และเราสามารถเอา Template Tags มาเรียกใช้ได้ด้วย

เอาหล่ะครับตอนนี้เรารู้แล้วว่าเราจะเขียน PHP ตรงไหนและมีอะไรบ้างที่เราสามารถใช้ได้ ต่อไปเราจะไปดูโครงสร้างเพื่อการแสดงผลกันครับ เช่น ถ้าเราต้องการแสดงหน้ารายการหน้าแรกเราจะไปจัดการที่ไฟล์ไหนเป็นต้นครับ

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

  • index.php – เป็นไฟล์หลักที่จะเรียกใช้งานกับทุกการแสดงผล ส่วนใหญ่จะเอาไว้ทำการแสดงผลในส่วนของ header และ footer
  • comments.php – แสดงผลในส่วนของการแสดงความคิดเห็น
  • front-page.php – เป็นส่วนของการแสดงหน้าหลัก //บาง Theme จะไม่สร้างเพราะว่าจะให้ระบบไปดึงจาก index.php ซะส่วนใหญ่ แต่แนะนำว่าสร้างเถอะครับ
  • home.php – ปกติจะทำหน้าที่เหมือนกับ front-page.php เลย แต่ถ้ามีการกำหนด static home ระบบก็จะเอาส่วนนี้มาแสดงแทน front-page ครับ
  • single.php – หน้าที่แสดงโพสบทความต่าง ๆ (ใช้ได้กับทุก post type)
  • single-{post-type}.php – หน้าแสดงโพสบทความตาม post type ที่ระบุ โดยเราจะระบุจาก post type slug
  • page.php – หน้าแสดงผลของเนื้อหาประเภท page
  • category.php – หน้าแสดงผลของเนื้อหาตามรายการ category
  • tag.php – หน้าแสดงผลเนื้อหาตามรายการ tag
  • taxonomy.php – หน้าแสดงผลเนื้อหาตามการแสดง tag แบบปรับแต่งเอง(Customize)
  • author.php – หน้าแสดงผลของ author
  • date.php – หน้าแสดงผลรายการตามวันที่
  • search.php – หน้าแสดงผลการค้นหา
  • 404.php – หน้าแสดงผลเมื่อผู้ใช้งานเปิดหน้าที่ไม่มีในระบบ //เช่นผู้ใช้งานเข้ามายังหน้าที่เราลบเนื้อหาไปแล้ว

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

April 25, 2017