ธีมลูกใน WordPress – ใช้งานอย่างไรและทำไม

เผยแพร่แล้ว: 2016-04-29

จุดรวมเบื้องหลัง WordPress คือการให้อำนาจแก่ผู้คนในการสร้าง แก้ไข และปรับแต่งไซต์หรือบล็อกของตนเอง นี่คือสิ่งที่คุณต้องการจ้างนักออกแบบ/นักพัฒนามืออาชีพในทศวรรษที่ผ่านมา

ทุกวันนี้ คุณสามารถดูแลไซต์ของคุณได้ทั้งหมดด้วยตัวเอง และคุณสามารถทำให้ไซต์ดูเป็นอะไรก็ได้ที่คุณต้องการ

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

นั่นคือที่มาของธีมเด็ก

ทำไมต้องใช้ธีมลูก

เริ่มจากอีกด้านหนึ่งของเหรียญ:

ข้อเสียอันดับ 1 หากคุณ *ไม่ใช้* ธีมลูก และดำเนินการแก้ไขใดๆ กับธีมปัจจุบัน (ปกติ) ของคุณแทน นั่นคือการแก้ไขทั้งหมดจะหายไปหากคุณอัปเดตธีม

ตอนนี้ สิ่งที่ฉันหมายถึงโดย การปรับเปลี่ยน :

  • การแก้ไขโค้ดด้วยตนเองที่ทำกับไฟล์ PHP ของธีมใดๆ
  • การแก้ไขใด ๆ กับ ไฟล์ style.css
  • ไฟล์ใหม่ใดๆ ที่คุณอาจใส่ไว้ในไดเร็กทอรีของธีม (ซึ่งรวมถึงไฟล์ PHP, ไฟล์ CSS, แม้แต่กราฟิก, ทุกอย่างตามตัวอักษร) – นี่เป็นปัญหาทั่วไปหากคุณมีเทมเพลตของเพจแบบกำหนดเอง

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

แต่ทำไมมันถึงแย่แบบนี้ล่ะ?

ปัญหาอาจไม่รุนแรงนักหากธีมที่คุณใช้ไม่ได้รับการอัปเดตเหมือนเคย อย่างไรก็ตาม ธีม WordPress ที่มีคุณภาพส่วนใหญ่มักจะได้รับการรีเฟรชบ่อยขึ้นเล็กน้อย และนั่นก็ใช้ได้โดยเฉพาะกับธีมเริ่มต้นใน WordPress (เช่น Twenty Fifteen) – พวกมันจะได้รับการอัปเดตทุกครั้งที่มีเวอร์ชันใหม่ของแกน WordPress ออกมา

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

แต่มีมากกว่านั้น การใช้ธีมลูก ยังช่วยเพิ่มมูลค่าในรูปแบบขององค์กรการทำงานที่ดีขึ้นอีกด้วย

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

ด้วยธีมย่อย การปรับเปลี่ยนทั้งหมดจะได้รับการจัดระเบียบที่ดีขึ้นมาก ทุกไฟล์ที่อยู่ในไดเร็กทอรีของธีมลูกจะมีเพียงรหัสของคุณเอง ดังนั้นไม่ต้องสงสัยอีกต่อไปว่า "ฉันแก้ไขไฟล์ X หรือไม่"

วิธีสร้างธีมลูกคนแรกของคุณ

ส่วนนี้ง่ายมากและแทบไม่ต้องมีการเข้ารหัสใดๆ ประการแรก หลักเกณฑ์ทั่วไปบางประการ:

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

ตอนนี้เข้าสู่วิธีการ ธีมลูกต้องการเพียงไม่กี่อย่างเท่านั้น:

  • ไดเร็กทอรีใหม่ภายใน wp-content/themes และด้วยชื่อ/กระสุนเฉพาะ ไม่ว่าคุณจะเรียกมันว่าอะไร
  • ไฟล์สไตล์ชีตภายในไดเร็กทอรีใหม่นั้น – style.css ,
  • และไฟล์ functions.php

นี่คือตัวอย่างธีมย่อยที่ฉันสร้างสำหรับธีมเริ่มต้นก่อนหน้าของ WordPress – Twenty Fifteen ฉันเริ่มต้นด้วยการสร้างไดเร็กทอรีชื่อ t15-child :

เด็ก

ต่อไป ฉันสร้างไฟล์ใหม่สองไฟล์ในไดเร็กทอรีนั้นและเรียกมันว่า style.css และ functions.php :

เด็ก-theme-dir

มาแก้ไข style.css กันก่อน นี่คือของฉัน:

 /* Theme Name: T15 child KK Theme URI: http://karol.cc/ Author: Karol K Author URI: http://karol.cc/ Template: twentyfifteen Description: My child of twentyfifteen Version: 1.0.0 License: GNU General Public License v2.0 License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: t15-child */

ไม่มีอะไรแฟนซีเกินไปอย่างที่คุณเห็น สองบรรทัดสำคัญในนั้นได้รับการเน้น:

  • ชื่อธีม – ชื่อของธีมลูกใหม่ ตามที่จะปรากฏใน wp-admin ใต้ Appearance / Themes

ธีมเด็ก

  • เทมเพลต - บรรทัดที่สำคัญที่สุดที่นี่ - ชี้ไปที่ธีมหลักด้วยกระสุน

จากนั้นไปที่ไฟล์ functions.php สิ่งเดียวที่ฉันมีคือ:

 <?php function theme_enqueue_styles() { $parent_; wp_enqueue_style($parent_style, get_template_directory_uri().'/style.css'); wp_enqueue_style('child-style', get_stylesheet_directory_uri().'/style.css', array($parent_style)); } add_action('wp_enqueue_scripts', 'theme_enqueue_styles');

นี่เป็นเพียงฟังก์ชันใหม่ที่เรียบง่าย ดูแลสองสิ่ง:

  • มันดึงสไตล์ชีตดั้งเดิมของธีมหลักและ
  • มัน "เปิด" ไฟล์ style.css ใหม่ เพื่อให้คุณสามารถดำเนินการแก้ไขเพิ่มเติมกับการออกแบบของธีมในไฟล์นั้นได้

สิ่งสำคัญอื่น ๆ ที่ควรทราบ:

  • ตอนนี้คุณสามารถแก้ไข style.css ใหม่ของคุณได้อย่างอิสระ ไม่ว่าคุณจะใส่คลาสใหม่อะไรลงไป หรือคลาสเก่าใดก็ตามที่คุณปรับเปลี่ยน จะส่งผลต่อเว็บไซต์ของคุณและรูปลักษณ์
  • คุณสามารถเพิ่มไฟล์ PHP อื่นๆ ลงในไดเร็กทอรีของธีมลูกได้ ไฟล์เหล่านั้นอาจเป็นไฟล์ใหม่ทั้งหมด ตัวอย่างเช่น สำหรับเทมเพลตที่กำหนดเองใหม่ หรือสามารถแทนที่ไฟล์มาตรฐานของธีมหลักได้ ตัวอย่างเช่น คุณสามารถสร้างไฟล์ single.php เวอร์ชันใหม่ทั้งหมดเพื่อจัดการกับวิธีแสดงโพสต์บล็อกของคุณ
  • ทุกสิ่งที่คุณใส่ในไฟล์ functions.php ใหม่ของคุณจะถูกดำเนินการเหมือนกับการทำงานของไฟล์ functions.php ดั้งเดิมในธีมหลัก

คุณได้สร้างธีมลูกแล้วหรือยัง?

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

คุณทำอะไรที่นี่? คุณวางแผนที่จะใช้ธีมลูกในเว็บไซต์ WordPress หรือบล็อกของคุณหรือไม่?