Child Theme สิ่งที่ WordPress Developer ต้องรู้จักแล้วชีวิตจะง่ายขึ้น

0
2308

ในการที่จะสร้าง Theme WordPress นั้น สามารถทำได้หลายวิธี

  • สร้างขึ้นมาใหม่ เริ่มจากศูนย์
  • ใช้ Starter Theme เช่น _s (Under Scores) เป็น based theme
  • ใช้  Framework  เช่น Gantry Framework , Codestar Framework
  • แก้ไขจาก Theme ที่มีอยู่แล้ว

ประเด็นคือ ถ้าคุณมี Theme ที่ชอบอยู่แล้ว Theme นั้นมีรูปแบบหรือ Function ต่างๆ มีคุณสมบัติครบสำหรับคุณแล้ว แต่คุณอยากจะปรับแต่งแค่บางส่วนเท่านั้น คุณจะทำยังไง?

วิธีที่ง่ายๆเลยก็คือ การ Modify แก้ไขพวกไฟล์ต่างๆ เช่น style.css , function.php , header.php ของ Theme โดยตรง

แต่ปัญหาคือ ถ้า Theme นั้นมีการ  Update หล่ะ คุณจะทำยังไงในเมื่อคุณแก้ไขไฟล์ต่างๆไปแล้วตั้งมากมาย ก็พอมีทางออกนะครับเพียงแค่เราก็อบปี้ไฟล์ที่เราแก้ไขไว้ก่อนอัพเดต จากนั้นก็ค่อยมาไล่แก้ไขโค๊ดอีกทีหลังอัพเดตแล้ว  โอว์…แบบนี้ก็ “งานงอก”  สิครับ ฟังดูแล้วมันน่าเศร้าเสียจริง เลือดเนื้อโปรแกรมเมอร์โดยแท้ ):  ต้องเสียเวลามาแก้งานเดิมที่เคยทำไปแล้ว

Child Theme เกิดมาเพื่อแก้ปัญหาเหล่านี้คุณสามารถสร้าง Child Theme เพื่อทำการ Overriding parent theme เพื่อใช้งานและปรับแต่งเพิ่มเติมได้ และเมื่อมีการ Update Theme ก็ทำที่ Parent theme เท่านั้น
จึงไม่เกิดความเสียหายต่อ Theme ที่เราสร้างใหม่และไม่ต้องแก้โค๊ดเก่าที่เคยทำไว้

Concept ของ Child Theme คือ ไม่ต้องทำในส่วนที่มีอยู่แล้ว เปลี่ยนแปลงเฉพาะส่วนที่ต้องการเท่านั้น

Parent Theme = พ่อแม่
Child Theme  = ลูก

พ่อแม่ หน้าตาเป็นยังไง ลูก ก็มีหน้าตาแบบนั้น แต่เราสามารถปรับแต่งหน้าตาลูกได้ โดยที่บางส่วนยังมีเหมือนพ่อแม่

 

ถ้าใครเขียนโปรแกรมแบบ OOP อยู่แล้วหลักการก็จะคล้ายๆ   Inheritance (การสืบทอด)

มาลองทำกันเลย

คุณสามารถสร้าง Child Theme ได้ 2 วิธี

ที่จริงแล้วก็ง่ายๆทั้งสองวิธีผมจะยกตัวอย่างวิธีที่ 2 นะครับ ในตัวอย่างนี้ผมมี Theme ที่ชอบอยู่แล้วชื่อ  salient
child theme
ใน wp-content/themes สร้างโฟล์เดอร์ขึ้นมา ตั้งชื่อว่า salient-child และภายในโฟล์เดอร์สร้างไฟล์ style.css และ function.php
เขียนโค๊ดในไฟล์  style.css

Theme Name = ชื่อที่แสดงในหน้า Admin
Template = ชื่อ Parent Theme

 

หลังจากนั้นเขียนโค๊ดในไฟล์ function.php

 

หลังจากนั้นให้คุณเข้าไปที่หน้า Admin แล้วเปลี่ยน Theme เป็น My Theme
ก็จะพบว่า หน้าตาเว็บไซต์จะเหมือนกันกับ Parent Theme ทุกประการ แต่คุณสามารถที่จะเขียนโค๊ดปรับแต่งได้เลยโดยไม่ต้องยุ่งเกี่ยวกับ Theme แม่
ก็ลองทดสอบปรับแต่ง CSS หรือ เขียนฟังก์ชั่นเพิ่มเติมใน function.php ดูครับ

 

 

สรุป! ทำไมต้องใช้  Child Theme

  • If you modify a theme directly and it is updated, then your modifications may be lost. By using a child theme you will ensure that your modifications are preserved.
    ถ้าเราแก้ไขไฟล์ต่างๆใน Theme โดยตรง เมื่อมีการอัพเดต สิ่งที่เราทำไว้อาจเสียหายได้ ต้องทำใหม่(เสียเวลา) แต่ถ้าเราใช้ Child Theme สิ่งที่เราเคยแก้ไขจะยังอยู่เหมือนเดิม
  • Using a child theme can speed up development time.
    ช่วยให้เราใช้เวลาในการพัฒนา Theme ได้เร็วขึ้น
  • Using a child theme is a great way to learn about WordPress theme development.
    เป็นแนวทางที่ดีเยี่ยมในการศึกษาและพัฒนา WordPress theme ที่ถูกวิธี

 

 

 

Comments

comments