รู้จักกับ Child Theme ใน WordPress
ปกติแล้วเวลาเราต้องการแก้ไขธีมให้มีหน้าตาตามที่ต้องการ หรือเพิ่มฟีเจอร์ที่เราต้องการ หลายคนมักจะใช้วิธีแก้ไขลงไปที่ไฟล์ธีมตรงๆ ซึ่งปํญหาที่ตามมาคือเมื่อเราอัพเดทธีมเป็นเวอร์ชันใหม่ ฟีเจอร์หรือการปรับแต่งที่เราทำเอาไว้ ก็จะหายไปด้วย หรือถ้าปล่อยธีมไว้ไม่อัพเดท หากว่าอัพเดทนั้นๆ เกี่ยวกับความปลอดภัย ก็ทำเว็บเราเสี่ยงอันตรายไปโดยปริยาย
Child Theme ในเวิร์ดเพรส
ในเวิร์ดเพรส เราสามารถสร้างธีมลูก (หรือ Child Theme) ให้กับธีมใดๆ ก็ได้ โดยธีมลูกนั้นจะคล้ายๆ กับการเขียนคลาสใหม่ที่ขยายคลาสเดิมใน PHP คือเมื่อเราเปิดใช้ธีมลูกแล้ว ในขั้นตอนการหาไฟล์ Template ตาม Hierarchy ของเวิร์ดเพรส ตัวเวิร์ดเพรสจะมองหาไฟล์เท็มเพลตในธีมลูกก่อน หากไม่เจอจึงจะไปหาเอาในธีมหลัก
ตัวอย่างเช่นเราต้องการแก้ไขหน้าตาของ single.php (หน้าแสดงโพสต์) เราก็จัดการสร้างธีมลูกขึ้นมา และสร้างไฟล์ single.php ขึ้นมา และปรับแต่งหน้าตาใดๆ ให้เรียบร้อยตามต้องการ เมื่อเวิร์ดเพรสมองหาเท็มเพลท single.php มันจะไปมองหา single.php ในธีมลูก ก่อน หากไม่เจอ จึงจะไปหา single.php ในธีมหลัก
การสร้าง Child Theme
Child Theme นั้นสามารถสร้างได้ง่ายมากครับ ต้องการเพียงไฟล์ style.css เพียงไฟล์เดียวเท่านั้น โดยในส่วนคอนฟิก เราก็แค่เพิ่มค่า Template ลงไป โดยค่า Template จะเป็นชื่อไดเรคทอรี่ที่เก็บธีมหลักเอาไว้ และให้ทำการ @import ไฟล์ CSS ของธีมหลักเข้ามา เช่น
/* Theme name: Midnize SPARK Theme URI: http://jirayu.in.th Template: sparkling Author: Jirayu Yingthawornsuk Author URI: http://jirayu.in.th */ @import url("../sparkling/style.css");
และหากต้องการแก้ไข CSS ใดๆ ก็สามารถใส่ลงไปต่อท้ายได้เลย
เมื่อเราไปดูใน Appearance > Themes ก็จะพบกับธีมลูกที่เราเพิ่งสร้างขึ้น เพิ่มเข้ามาครับ สามารถ Activate ใช้งานได้ทันที
ไฟล์ functions.php
หากเราต้องการเพิ่มฟังก์ชันใดๆ ให้กับธีม เราสามารถเขียนไฟล์ functions.php เพิ่มเข้าไปได้เลย อย่างไรก็ตาม ไฟล์ functions.php จะถูกโหลดเข้ามาประมวลผลด้วย ทั้งของธีมหลักและของธีมลูกครับ