ข้อมูลเบื้องต้นเกี่ยวกับลำดับชั้นของเทมเพลต WordPress

เผยแพร่แล้ว: 2019-12-11

หนึ่งในคำถามสำคัญที่ผู้ใช้ WordPress ถามในช่วงชีวิตของพวกเขาคือ: ธีม WordPress จัดการเพื่อแสดงหน้าต่างๆ ได้อย่างไรขึ้นอยู่กับเนื้อหาที่เราเห็น?

คำถามนี้น่าสนใจมากนอกจากความถูกต้องตามกฎหมาย WordPress สามารถระบุได้ว่าเนื้อหาใดที่จะแสดง และใช้เทมเพลตอย่างใดอย่างหนึ่งหรืออย่างอื่นขึ้นอยู่กับประเภทของ ธีม WordPress เป็นเพียงชุดของเทมเพลตเฉพาะสำหรับเนื้อหาแต่ละประเภทด้วย JavaScript สำหรับองค์ประกอบแบบไดนามิกและ CSS สำหรับสไตล์และสี

สมบูรณ์แบบ แต่... เทมเพลต WordPress ทำงานอย่างไร นี่คือสิ่งที่เราจะเห็นทีละขั้นตอนตลอดโพสต์นี้

ก่อนที่เราจะเริ่มต้น ให้ฉันแสดงรูปภาพพร้อมคำตอบสำหรับคำถามนี้:

ลำดับชั้นเทมเพลต WordPress
ลำดับชั้นของเทมเพลต WordPress

นี่คือลำดับชั้นของเทมเพลต WordPress คุณสามารถค้นหาข้อมูลทั้งหมดเกี่ยวกับเรื่องนี้ได้ใน WordPress Codex ซึ่งเป็นเอกสารอย่างเป็นทางการ คุณสามารถโต้ตอบกับลำดับชั้นนี้ได้ในเว็บไซต์สุดเจ๋งนี้

โดยทั่วไป WordPress ใช้ลำดับชั้นของเทมเพลตเพื่อแสดงเนื้อหา นั่นคือ WordPress ค้นหาภายในธีมที่คุณเปิดใช้งานสำหรับไฟล์ PHP เฉพาะ หากมีอยู่ WordPress จะแสดงเนื้อหาโดยใช้ไฟล์นั้น ซึ่งเราเรียกว่าเทมเพลต หากไม่เป็นเช่นนั้น WordPress จะค้นหาเทมเพลตทั่วไปที่สุดถัดไปภายในลำดับชั้น ถ้ามีอยู่ WordPress ใช้มัน มิฉะนั้น WordPress จะมองหาเทมเพลตถัดไปในลำดับชั้น... และอื่นๆ หาก WordPress ไม่พบไฟล์เทมเพลตเฉพาะในธีมของคุณ ไฟล์นั้นจะใช้ไฟล์ index.php เริ่มต้น ซึ่งเป็นไฟล์ทั่วไปที่สุดในบรรดาเทมเพลตทั้งหมด

ตอนนี้ มาดูรายละเอียดเพิ่มเติมในลำดับชั้นเทมเพลตของเนื้อหา WordPress ทั่วไปบางส่วนกัน

เทมเพลตหน้า

มาดูเทมเพลตที่ WordPress ใช้สำหรับแสดงหน้าและประเภทเนื้อหาอย่างง่าย

โพสต์และประเภทโพสต์ที่กำหนดเอง

WordPress จะดูไฟล์ PHP ต่อไปนี้ในธีมของคุณเพื่อแสดงโพสต์ในบล็อกหรือประเภทโพสต์ที่กำหนดเอง:

  1. single-{post-type}-{slug}.php : หากคุณต้องการเทมเพลตเฉพาะสำหรับโพสต์เฉพาะหรือประเภทโพสต์เฉพาะ คุณต้องสร้างไฟล์ PHP นี้ในธีมของคุณ ชื่อประกอบด้วยชื่อประเภทโพสต์ ( {post-type} ) ซึ่งสามารถ โพสต์ หรืออะไรก็ได้ ( product ถ้าคุณใช้ WooCommerce) และคุณต้องพิมพ์กระสุนหรือลิงก์ถาวร เรียกมันว่าสิ่งที่คุณต้องการในชื่อของเทมเพลต ตัวอย่างเช่น ถ้าฉันต้องการใช้เทมเพลตเฉพาะสำหรับโพสต์นี้ ฉันจะต้องสร้างไฟล์ single-post-introduction-to-the-wordpress-template-hierarchy.php
  2. single-{post-type}.php : หากเราต้องการส่งผลกระทบกับเนื้อหาทั้งหมดของโพสต์ประเภทใดประเภทหนึ่ง (โพสต์ทั้งหมดหรือผลิตภัณฑ์ทั้งหมด) เราจะใช้เทมเพลตนี้ซึ่งมีชื่อเฉพาะชื่อประเภทโพสต์เท่านั้น
  3. single.php : WordPress ใช้เทมเพลตนี้เพื่อแสดงเนื้อหาเดียว (โพสต์เฉพาะ ผลิตภัณฑ์เฉพาะ ฯลฯ)
  4. singular.php : นี่เป็นเทมเพลตระดับบนสุดอีกอันสำหรับแสดงเนื้อหาเดี่ยวทุกประเภท
  5. index.php : หากไม่พบสิ่งใดข้างต้น WordPress จะใช้เทมเพลตทั่วไปนี้เพื่อแสดงเนื้อหาของคุณ

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

การทำเช่นนี้ทำให้คุณสามารถเข้าใจได้ว่าเทมเพลตใดที่พวกเขาใช้ภายในลำดับชั้นของเทมเพลต WordPress และดูว่าเทมเพลตเหล่านี้มีเนื้อหาอะไรบ้าง ไม่ต้องสงสัยเลยว่า หากคุณต้องการเรียนรู้เกี่ยวกับธีม WordPress นี่คือสิ่งที่จำเป็นต้องทำ นอกจากนี้ยังฟรี!

หน้าปกติ

เช่นเดียวกับโพสต์และประเภทโพสต์อื่นๆ WordPress ใช้ลำดับชั้นของเทมเพลตเพื่อแสดงหน้าเว็บ:

  1. เทมเพลตที่เลือก: หากจากช่อง แอตทริบิวต์ของหน้า เมื่อแก้ไขเพจที่คุณเลือกเทมเพลตเฉพาะ เทมเพลตนั้นจะมีความสำคัญเหนือกว่าเทมเพลตอื่นๆ ทั้งหมดเสมอ คุณสามารถเรียนรู้การสร้างเทมเพลตที่กำหนดเองได้ที่นี่
  2. page-{slug}.php : หากคุณต้องการให้หน้าใดหน้าหนึ่งมีเทมเพลตของตัวเอง ให้สร้างเทมเพลตนั้นในไฟล์ PHP ที่มีส่วนย่อยของหน้าในชื่อ
  3. page-{id}.php : คุณยังสามารถใช้ ID หน้า WordPress ได้โดยตรงซึ่งใช้เทมเพลต
  4. page.php : เทมเพลตนี้ใช้กับหน้า WordPress ทั้งหมด ยกเว้นในกรณีที่ใช้เทมเพลตก่อนหน้าในลำดับชั้นแล้ว
  5. singular.php : เทมเพลตเอกพจน์คือเทมเพลตเริ่มต้นสำหรับหน้า โพสต์ ผลิตภัณฑ์ และอื่นๆ ทั้งหมด เทมเพลตนี้จะไม่ค่อยถูกนำมาใช้ เนื่องจากธีมส่วนใหญ่ใน WordPress มีเทมเพลต page.php อยู่แล้ว
  6. index.php : เช่นเคย นี่คือเทมเพลตทางเลือกเริ่มต้นของ WordPress

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

หน้าพิเศษ

ใน WordPress มีหน้าพิเศษอื่นๆ ที่ใช้เทมเพลตเฉพาะเพื่อแสดงเนื้อหา ตัวอย่างนี้คือหน้าหลักของเว็บไซต์ จำไว้ว่าหน้าหลักถูกเลือกในการ ตั้งค่า WordPress ภายในเมนูย่อยการ อ่าน ลำดับชั้นเทมเพลตต่อไปนี้ใช้สำหรับหน้านั้น:

  1. front-page.php : หากคุณใช้หน้าสแตติกเป็นหน้าหลักใน WordPress อันดับแรกจะพยายามใช้เทมเพลต front-page.php
  2. home.php : หากไม่พบเทมเพลตก่อนหน้า WordPress จะพยายามใช้เทมเพลตนี้ เทมเพลตนี้ยังใช้แทนการเลือกหน้าคงที่เป็นหน้าหลัก คุณได้เลือกตัวเลือกให้แสดงโพสต์ล่าสุดของคุณแทน
  3. index.php : อีกครั้ง เทมเพลตเริ่มต้นจะแสดงอยู่เสมอ

หน้าที่แสดงผลการค้นหาของ WordPress ยังเป็นหน้าพิเศษที่สามารถมีเทมเพลตของตัวเองได้ ในการดำเนินการนี้ คุณสามารถใช้เทมเพลต search.php หากธีมของคุณไม่ได้กำหนดไว้ index.php จะถูกใช้ตามปกติ

สุดท้าย หน้าที่แสดงเมื่อเว็บไซต์ของคุณส่งคืนข้อผิดพลาด 404 สามารถกำหนดค่าด้วยเทมเพลต WordPress เฉพาะได้ คุณต้องสร้างไฟล์ 404.php ในธีมของคุณ จากนั้นเทมเพลตนี้จะถูกนำมาใช้

เทมเพลตสำหรับจดหมายเหตุ

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

หมวดหมู่และแท็ก

WordPress ใช้ลำดับชั้นเทมเพลตต่อไปนี้สำหรับหมวดหมู่:

  1. category-{slug}.php : เทมเพลตนี้ใช้เพื่อแสดงรายการเนื้อหา (โดยปกติคือโพสต์) ที่อยู่ในหมวดหมู่เฉพาะ โดยเฉพาะอย่างยิ่ง จะใช้เมื่อแสดงหมวดหมู่ที่มีกระสุนปรากฏในชื่อไฟล์ PHP
  2. category-{id}.php : หากคุณต้องการใช้รหัสหมวดหมู่แทนทาก คุณก็สามารถทำได้ ตัวอย่างเช่น หากคุณต้องการใช้เทมเพลตกับหมวดหมู่ 13 ให้สร้างไฟล์เทมเพลตชื่อ category-13.php
  3. category.php : เทมเพลตเริ่มต้นสำหรับทุกหมวดหมู่
  4. archive.php : นี่เป็นเทมเพลตทั่วไปที่สุดสำหรับไฟล์เก็บถาวรใน WordPress
  5. index.php : อีกครั้ง ถ้าธีมของคุณไม่มีเทมเพลตที่เจาะจงกว่านี้ WordPress จะใช้ค่าเริ่มต้นของไฟล์นี้

ลำดับชั้นเทมเพลตต่อไปนี้ใช้สำหรับแท็ก:

  1. tag-{slug}.php : หากแท็กเรียกว่า interview เราสามารถใช้เทมเพลต tag-interview.php ในกรณีที่เราต้องการออกแบบเทมเพลตเฉพาะสำหรับแท็กนั้นใน WordPress
  2. tag-{id}.php : เรายังสามารถกำหนดเทมเพลตผ่าน ID แท็ก
  3. tag.php : เช่นเดียวกับ category.php นี่คือเทมเพลตทั่วไปสำหรับแท็ก
  4. archive.php : อีกครั้ง เทมเพลตนี้จะถูกใช้หากไม่มีสิ่งที่กล่าวมาข้างต้น
  5. index.php : เช่นเคย นี่คือเทมเพลตสำรอง

ประเภทโพสต์ที่กำหนดเองและอนุกรมวิธานที่กำหนดเอง

หากเรามีประเภทเนื้อหาที่กำหนดเอง เราก็สามารถใช้ template archive-{post_type}.php โดยที่ post_type เป็น กระสุน ของประเภทโพสต์ที่กำหนดเอง สิ่งนี้จะแสดงรายการเนื้อหาสำหรับประเภทโพสต์นั้น

สำหรับการจัดหมวดหมู่แบบกำหนดเอง WordPress จะใช้ลำดับชั้นของเทมเพลตต่อไปนี้:

  1. taxonomy-{taxonomy}-{term}.php : หากคุณมีอนุกรมวิธานแบบกำหนดเองที่เรียกว่า videogames ใน WordPress และต้องการสร้างเทมเพลตที่มีการออกแบบเฉพาะสำหรับคำว่า sports ภายในอนุกรมวิธานนั้น คุณจะต้องสร้างไฟล์ taxonomy-videogames-sports.php เพื่อใช้เทมเพลตนั้น
  2. taxonomy-{taxonomy}.php : หากคุณต้องการใช้เทมเพลตเดียวกันสำหรับคำศัพท์อนุกรมวิธานทั้งหมด เพียงใช้ taxonomy-videogames.php ในตัวอย่างก่อนหน้านี้
  3. taxonomy.php : นี่คือเทมเพลตเริ่มต้นสำหรับการจัดหมวดหมู่ทั้งหมด
  4. archive.php : หากไม่มีเทมเพลตข้างต้น ให้ดำเนินการนี้
  5. index.php : อีกครั้ง นี่คือเทมเพลตทางเลือกเริ่มต้น

ด้วยคำอธิบายเหล่านี้ คุณควรมีทุกสิ่งที่จำเป็นในการสร้างและระบุเทมเพลตในธีม WordPress ของคุณ

เพื่อสรุป

การทำความเข้าใจลำดับชั้นของเทมเพลต WordPress เป็นกุญแจสำคัญในการทำความเข้าใจธีมและแม้แต่พัฒนาเทมเพลตของคุณเอง ไม่เคยเจ็บที่จะดูสิ่งนี้และรู้ว่ามันทำงานอย่างไรเพื่อให้เกิดความมั่นใจเมื่อคุณเริ่มแก้ไขโค้ด PHP ของธีมที่คุณใช้ใน WordPress ของเรา

มีแม่แบบอื่น ๆ แต่ไม่ค่อยได้ใช้ อย่างไรก็ตาม จำไว้ว่าคุณสามารถเข้าไปตรวจสอบเอกสารของ WordPress Codex ได้ตลอดเวลา คุณจะพบทุกสิ่งที่ไม่ได้อธิบายไว้ที่นี่

คุณคิดอย่างไรกับเรื่องทั้งหมดนี้? คุณยังคงใช้เทมเพลตสำหรับเนื้อหา WordPress ของคุณหรือคุณกำลังสร้างการออกแบบทั้งหมดด้วยบล็อกอยู่แล้ว? อย่าลืมแสดงความคิดเห็นด้านล่างหากคุณโพสต์ถึงตอนท้ายแล้ว ฉันชอบที่จะรู้ว่าคุณใช้เทมเพลต WordPress อย่างไร!

ภาพเด่นโดย Edvard Alexander Rlvaag บน Unsplash