ทำความรู้จักกับโครงสร้างไฟล์ WordPress และลำดับการใช้งาน
8 | | . | WordPress, ความรู้, ระดับสูง WordPress
สำหรับผู้ที่เริ่มสนใจในการเขียนหรือพัฒนาธีม WordPress อาจจะสงสัยในโครงสร้างของระบบ WordPress ว่ามีไฟล์ประเภทใดบ้าง และมีรูปแบบการทำงานอย่างไร วันนี้ผมจะมาพูดถึงโครงสร้างไฟล์ WordPress เพื่อให้เกิดความเข้าใจในภาพรวมของระบบของ WordPress ทั้งหมดเพื่อทำให้ผู้พัฒนา WordPress Theme มีแนวทางในการเริ่มต้นพัฒนาครับ
เริ่มแรกเลย WordPress นั้นถูกพัฒนามาเพื่อให้สามารถใช้งานง่าย โดยไฟล์ส่วนใหญ่จะเป็นไฟล์ประเภท PHP, CSS และ JS ครับ โดยไฟล์แต่ละประเภทนั้นทำหน้าที่แตกต่างกัน ไฟล์ PHP จะทำหน้าที่ในการสร้างโครงสร้างของเว็บไซต์หรือที่เรียกกันว่าเทมเพลต เราสามารถสร้างฟังก์ชั่นต่างๆ ขึ้นมาเพื่อใช้งานได้ ในขณะที่ไฟล์ CSS นั้นจะเป็นไฟล์ Stylesheet ที่ทำหน้าที่ในการออกแบบหน้าตาของเว็บไซต์ และไฟล์ JS จะเป็นไฟล์ JavaScript ที่ใช้สำหรับการสร้างลูกเล่นต่างๆ กันนอกจากไฟล์ 3 ประเภทหลักในส่วนข้างต้นแล้ว WordPress ยังมีไฟล์อื่นๆ ที่เป็นส่วนเสริม ได้แก่ ไฟล์รูปภาพ Jpeg, png ไฟล์การแปลภาษา pot เป็นต้น
ไฟล์ของ WordPress
ไฟล์ของ WordPress ที่จำเป็นสำหรับการเริ่มต้นสร้างธีม WordPress ก็คือ ไฟล์ index.php และ style.css ครับ ไฟล์ชุดนี้จะเป็นไฟล์ชุดแรกที่จำเป็น โดยเฉพาะไฟล์ index.php ที่เป็นไฟล์หลักในการเริ่มทำการเขียนเว็บไซต์และเป็นโครงสร้างของหน้าเว็บไซต์ ขณะที่ไฟล์ style.css จำเป็นสำหรับการเขียนข้อความลงไปเพื่อประกาศว่า ธีมที่เราจะเขียนนั้นชื่อว่าอะไร เวอร์ชั่นอะไร พัฒนาโดยใคร บริษัทอะไร มีไลเซ่นส์เป็นอย่างไร ในขณะที่ไฟล์อื่นๆ จะเป็นไฟล์ส่วนประกอบโครงสร้างของเว็บไซต์ และฟังก์ชั่นการใช้งาน มีรายละเอียดดังนี้
- Index.php เป็นไฟล์หลักของเทมเพลต ไฟล์นี้จำเป็นที่จะต้องมีทุกธีมของ WordPress
- style.css เป็นไฟล์หลักที่ใช้สำหรับการออกแบบสไตล์ เช่น สี ฟอนต์ ของเว็บไซต์
- Header.php เป็นไฟล์สำหรับการสร้างส่วนหัวของหน้าเว็บไซต์ และยังเป็นส่วนที่ใส่ข้อมูลสำคัญเช่นประเภทของเอกสาร (Document Type) ข้อมูลรายละเอียด (Meta Information) ลิงก์การดึงข้อมูลไฟล์สไตล์ชีทและสคริปท์ (Links to Stylesheets and scripts) และข้อมูลอื่นๆ
- Footer.php เป็นไฟล์สำหรับการสร้างส่วนท้ายของหน้าเว็บไซต์ และไฟล์สคริปต์ต่างๆ จะอยู่ในส่วนนี้
- Front-page.php เป็นไฟล์เทมเพลตสำหรับหน้าแรกของเว็บไซต์ถ้ามีไฟล์นี้อยู่ในธีม โดยเราสามารถไปตั้งค่าได้ที่ Admin > Settings > Reading
- Home.php เป็นไฟล์เทมเพลตที่แสดงหน้าแรกโดยพื้นฐาน ซึ่งจะแสดงในรูปแบบรายการบทความล่าสุด
- Singular.php เป็นเทมเพลตที่ใช้สำหรับหน้าบทความ (Posts) และหน้าหลัก (Pages)
- Single.php เป็นไฟล์สำหรับการเรียกใช้งานหน้าบทความเท่านั้น
- Page.php เป็นไฟล์หน้าหลักจะใช้กับหน้าที่ไม่เปลี่ยนแปลง เช่น หน้าติดต่อเรา (Contact Us) หน้าเกี่ยวกับเรา (About Us) เป็นต้น
- Category.php เป็นไฟล์ที่ใช้งานเกี่ยวกับหมวดหมู่ต่างๆ ของบทความ
- Tag.php เป็นไฟล์ที่ใช้งานเกี่ยวกับป้ายกำกับต่างๆ
- Date.php เป็นไฟล์ที่ใช้งานเกี่ยวกับวัน
- Archive.php เป็นไฟล์ที่ใช้สำหรับระบบจัดเก็บข้อมูลเป็นรายการทั้ง หมวดหมู่ ป้ายกำกับ วันที่เก็บเอกสาร
- Taxonomy.php เป็นไฟล์ที่ใช้งานเกี่ยวกับหมวดหมู่ของทุกประเภทของเรื่อง (Post Type)
- Author.php เป็นไฟล์ที่ใช้งานสำหรับรายละเอียดผู้เขียน
- Sidebar.php เป้นไฟล์สำหรับการสร้างแถบด้านข้างของหน้าเว็บไซต์
- Rtl.css เป้นไฟล์สไตล์เช่นเดียวกัน แต่ใช้สำหรับเว็บไซต์ที่อ่านเนื้อหาจากทางขวาไปซ้าย
- Comments.php เป้นไฟล์โครงร่าง (เทมเพลต) สำหรับการคอมเมนต์หรือเสนอความคิดเห็น
นอกจากนี้แล้ว เรายังมีไฟล์ที่ทำหน้าที่ขยายในไฟล์นั้นๆ ได้อีก ยกตัวอย่างเช่น single-{book}.php จะเป็นไฟล์ที่ใช้งานเกี่ยวกับรายการบทความที่เป็นหนังสือ เป็นต้น
โครงสร้างไฟล์ WordPress
โครงสร้างของไฟล์ WordPress จะเป็นไปตามภาพด้านล่าง โดยจะมีลำดับการเรียกไฟล์จากซ้ายไปขวา ในกรณีที่ไม่มีไฟล์ที่ถูกเรียก ลำดับไฟล์ถัดไปที่อยู่ข้างเคียงจะถูกเรียกแทนตามลำดับ (อ้างอิงจากเว็บ WordPress.org)
ลำดับการเรียกไฟล์ WordPress
ลำดับการเรียกไฟล์ WordPress มีความสำคัญสำหรับผู้พัฒนาเว็บไซต์ในการออกแบบให้มีความหลากหลายของหน้าเว็บไซต์ โดยมีการใช้รูปด้านบนมาทำให้เห็นโครงสร้างขอลำดับไฟล์ โดยแบ่งแต่ละหน้าดังต่อไปนี้
การแสดงผลหน้าแรก (Front Page)
ลำดับความสำคัญสูงที่สุด โดยมีลำดับการเรียกไฟล์ดังต่อไปนี้
- Front-page.php – ไฟล์นี้ถูกเรียกใช้เป็นลำดับแรกเพื่อใช้เป็นหน้าแรก โดยจะถูกเรียกไม่ว่าจะตั้งค่าในหน้าของการตั้งค่าการอ่าน (Settings -> Reading) เป็นแบบรายการบทความล่าสุด (Your Latest Posts) หรือหน้าคงที่ (A Static Page)
- Home.php จะถูกเรียกใช้เป็นลำดับที่ 2 เมื่อระบบ WordPress ไม่สามารถค้นหาไฟล์ front-page.php ในธีมได้ โดยจะถูกเรียกในสองกรณี คือ กรณีแรกในหน้าแรก ส่วนของการตั้งค่าหน้าแรก (Front page displays) ได้ถูกกำหนดเป็นรายการบทความล่าสุด (Your Latest Posts) หรือ ในกรณีที่ถูกกำหนดเป็นหน้าบทความ (Posts page)
- Page.php ไฟล์นี้จะถูกเรียกใช้เป็นลำดับที่ 3 หากกรณี 2 ข้อแรกไม่มี และจะใช้เมื่อในส่วนของการตั้งค่าหน้าแรก (Front page displays) กำหนดหน้าคงที่หน้าใดหน้าหนึ่งให้เป็นหน้าแรก
- Index.php ในกรณีที่ไฟล์ front-page.php และไฟล์ home.php ไม่มีอยู่ในระบบ WordPress ไฟล์ index.php จะถูกเรียกใช้งานเมื่อในส่วนของการตั้งค่าหน้าแรก (Front page displays) ถูกตั้งค่าเป็นรายการบทความล่าสุด (Your latest posts)
หน้านโยบายส่วนบุคคล (Privacy Policy)
ลำดับความสำคัญสูงที่สุด โดยมีลำดับการเรียกไฟล์ดังต่อไปนี้
- Privacy-policy.php ไฟล์นี้จะถูกใช้สำหรับหน้านโยบายส่วนบุคคล (Privacy Policy) เป็นลำดับแรก
- หน้าเทมเพลตไฟล์ เป็นหน้าที่จะถูกเรียกใช้ลำดับ 2 หากมีการสร้างหน้าเทมเพลตไฟล์เฉพาะ
- Page-{slug}.php จะถูกเรียกใช้เป็นลำดับที่ 3 ซึ่งในส่วนของสลัก (slug) เช่น page-privacy.php
- Page-{id}.php จะถุกเรียกเป็นลำดับที่ 4 ในส่วนของ id จะเป็นหมายเลขของหน้าที่เราต้องการ เช่น page-6.php เป็นต้น
- Singular.php จะถูกเรียกเป็นลำดับที่ 5
- Index.php จะถูกเรียกเป็นลำดับสุดท้าย
หน้าบทความ (Single Post)
ลำดับความสำคัญสูงที่สุด โดยมีลำดับการเรียกไฟล์ดังต่อไปนี้
- Single-{post-type}-{slug}.php ไฟล์นี้จะเป็นไฟล์แรกที่ถูกเรียกในกรณีที่ระบบของ WordPress พบไฟล์ประเภทนี้อยู่ โดยในส่วนของ post-type ก็คือ ประเภทของบทความ ที่ผู้พัฒนาธีมทำการสร้างขึ้นมาเฉพาะ เช่น product, book, movie และในส่วนของ post slug ก็คือ ชื่อที่อยู่ท้ายสุดของลิงก์หน้านั้นๆ ยกตัวอย่างเช่น single-product-dmc-12.php
- Single-{post-type}.php จะเป็นไฟล์ที่ถูกเรียกในลำดับถัดมา ในกรณีที่ไฟล์ในข้อ 1 ไม่มี ยกตัวอย่างเช่น single-product.php
- Single.php เป็นไฟล์หลักที่มักจะใช้กันสำหรับการเรียกหน้าบทความ (Post) ทั้งหมด
- Singular.php เป็นไฟล์หลักที่ใช้สำหรับเรียกทั้งหน้าบทความ (Post) และหน้าคงที่ (Page) และจะถูกเรียกใช้เมื่อข้อ 1-3 ไม่มีในระบบ
- Index.php จะถูกเรียกเป็นลำดับสุดท้ายในกรณีที่ 4 ข้อแรกไม่มีในระบบ
หน้าคงที่ (Single Page)
สำหรับในส่วนของหน้าคงที่ (Page) นั้น จะใช้สำหรับประเภทหน้า (Page post-type) ซึ่งลำดับการเรียกใช้งานนั้นจะพิเศษกว่าในส่วนอื่นๆ ดังนี้
- ไฟล์เทมเพลตที่ออกแบบเฉพาะ (Custom template file) ซึ่งหน้านี้เกิดจากการกำหนดไฟล์ที่เราเขียนให้เป็นหน้าเทมเพลตโดยไม่จำเป็นที่จะต้องทำการระบุชื่อไฟล์ขึ้นต้นด้วยคำว่า page ก็ได้ สามารถอ่านต่อได้ในหัวข้อ page template
- Page-{slug}.php จะเป็นการเรียกใช้งานไฟล์ที่ขึ้นต้นด้วยเพจและตามด้วย Slug ยกตัวอย่างเช่น page-recent-news.php
- Page-{id}.php จะถูกเรียกเป็นลำดับถัดมา โดย id ก็คือ เลขไอดีหน้าที่เราต้องการเรียกใช้งานนั่นเอง ยกตัวอย่างเช่น page-7.php
- Page.php
- Singular.php
- Index.php
สำหรับการเรียกใช้งานถัดมาจะทำการเรียกไฟล์ page.php , singular.php และ index.php ตามลำดับเมื่อไฟล์ใน 3 ข้อแรกไม่มีในระบบ
หมวดหมู่ (Category)
ลำดับความสำคัญสูงที่สุด โดยมีลำดับการเรียกไฟล์ดังต่อไปนี้
- Category-{slug}.php เป็นไฟล์ที่ใช้เรียกหมวดหมู่ที่ชื่อว่า slug ยกตัวอย่างเช่น category-news.php ก็จะเรียกใช้สำหรับหมวดหมู่ที่ชื่อว่า news เป็นต้น
- Category-{id}.php เป็นไฟล์ที่เรียกใช้หมวดหมู่ที่มีหมายเลข id ตามที่กำหนด เช่น category-6.php
- Category.php
- Archive.php
- Index.php
ในส่วนของข้อ 3-5 จะถูกเรียกใช้งานในลำดับถัดๆ มา ในกรณีที่ 2 ข้อแรกไม่มีในระบบ
ป้ายกำกับ (Tag)
ลำดับความสำคัญสูงที่สุด โดยมีลำดับการเรียกไฟล์ดังต่อไปนี้
- Tag-{slug}.php เป็นการเรียกใช้ไฟล์ tag ที่ระบุชื่อ slug เป็นการเรียกลำดับแรก
- Tag-{id}.php ในกรณีที่ไม่มีไฟล์ตามข้อ 1 ก็จะมาเรียก tag ที่ระบุไอดีเป็นลำดับถัดมา
- Tag.php ถูกเรียกเป็นลำดับที่ 3
- Archive.php ถูกเรียกเป็นลำดับที่ 4
- Index.php ถูกเรียกเป็นลำดับที่ 5
หมวดหมู่เฉพาะ (Custom Taxonomies)
สำหรับหมวดหมู่เฉพาะ (Custom Taxonomies) ไฟล์ที่ใช้นั้นก็จะมีความแตกต่างเล็กน้อย ดังต่อไปนี้
- Taxonomy-{taxonomy}-{term}.php เป็นการเรียกใช้ไฟล์ที่ชื่อ taxonomy และมีเทอมอยู่ด้านหลัง ยกตัวอย่างเช่น taxonomy-sometax-someterm.php แต่ถ้าเป็นกรณีของ post formats ในส่วนของ taxonomy จะเป็น post_format และเทอมจะเป็น post-format-{format} เมื่อรวมกันจะได้เป็น taxonomy-post_format-post-format-link.php เป็นต้น
- Taxonomy-{taxonomy}.php ไฟล์นี้จะถูกการเรียกใช้เฉพาะ taxonomy ที่กำหนดเท่านั้น เช่น Taxonomy-sometax.php ก็จะเรียกใช้สำหรับ sometax
- Taxonomy.php ถูกเรียกเป็นลำดับที่ 3
- Archive.php ถูกเรียกเป็นลำดับที่ 4
- Index.php ถูกเรียกเป็นลำดับที่ 5
ประเภทหน้าที่ถูกกำหนดเอง (Custom Post Types)
ลำดับความสำคัญสูงที่สุด โดยมีลำดับการเรียกไฟล์ดังต่อไปนี้
- Archive-{post_type}.php ถูกเรียกเป็นลำดับที่ 1
- Archive.php ถูกเรียกเป็นลำดับที่ 2
- Index.php ถูกเรียกเป็นลำดับที่ 3
หน้าผู้เขียน (Author Display)
ลำดับความสำคัญสูงที่สุด โดยมีลำดับการเรียกไฟล์ดังต่อไปนี้
- Author-{nicename}.php ถูกเรียกเป็นลำดับที่ 1
- Author-{id}.php ถูกเรียกเป็นลำดับที่ 2
- Author.php ถูกเรียกเป็นลำดับที่ 3
- Archive.php ถูกเรียกเป็นลำดับที่ 4
- Index.php ถูกเรียกเป็นลำดับที่ 5
หน้าวัน (Date)
ลำดับความสำคัญสูงที่สุด โดยมีลำดับการเรียกไฟล์ดังต่อไปนี้
- Date.php ถูกเรียกเป็นลำดับที่ 1
- Archive.php ถูกเรียกเป็นลำดับที่ 2
- Index.php ถูกเรียกเป็นลำดับที่ 3
หน้าผลลัพธ์การค้นหา (Search result)
ลำดับความสำคัญสูงที่สุด โดยมีลำดับการเรียกไฟล์ดังต่อไปนี้
- Search.php ถูกเรียกเป็นลำดับที่ 1
- Index.php ถูกเรียกเป็นลำดับที่ 2
หน้า 404 (Not Found)
ลำดับความสำคัญสูงที่สุด โดยมีลำดับการเรียกไฟล์ดังต่อไปนี้
- 404.php ถูกเรียกเป็นลำดับที่ 1
- Index.php ถูกเรียกเป็นลำดับที่ 2
หมายเหตุ index.php เป็นลำดับสุดท้ายเสมอของโครงสร้าง WordPress และเป็นไฟล์หลักที่ใช้ในการสร้างเว็บไซต์
ท้ายที่สุดนี้เราจะเห็นได้ว่า โครงสร้างและลำดับของไฟล์ของ WordPress นั้นมีความสำคัญมาก เราสามารถที่จะเขียนหรือแก้ไขไฟล์ที่เราต้องการซึ่งจะทำให้การเขียนหรือแก้ไขธีมต่างๆ ได้ง่ายขึ้นเป็นลำดับ หวังว่าทุกท่านคงจะได้ประโยชน์ในบทความนี้ไม่มากก็น้อยนะครับ สวัสดีครับ