วิธีหลีกเลี่ยงข้อผิดพลาดในการพัฒนาธีม WordPress ทั่วไป

เผยแพร่แล้ว: 2021-02-16

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

แต่ด้วยความยืดหยุ่นดังกล่าว ความจริงก็คือการทำสิ่งที่ "ผิด" ได้ง่าย ในกรณีนี้ "ผิด" หมายความว่ามีบางอย่างที่ไม่มีประสิทธิภาพหรือมีความเจ็บปวดเล็กน้อยที่ต้องรักษาไว้ แม้ว่ามันอาจจะใช้ได้ผล แต่ก็มักจะมีวิธีที่ดีกว่าในการทำสิ่งต่างๆ ให้เสร็จลุล่วง

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

1. การใช้ URL แบบสัมบูรณ์ในเทมเพลต

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

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

WordPress มีวิธีกำหนด URL ที่ถูกต้องในตัว – ดึงมาจากการ Settings > General ของแดชบอร์ด

สำหรับลิงก์ echoing esc_url( home_url() ) จะให้พาธแบบเต็มไปยังโฮมเพจ ดังนั้น แทนที่จะวาง URL ในโค้ดของคุณอย่างชัดแจ้ง คุณสามารถเพิ่มลิงก์ง่ายๆ กลับไปที่หน้าแรกของคุณได้ดังนี้:

 <a href="<?php echo esc_url( home_url() ); ?>" />Home</a>

ยิ่งไปกว่านั้น คุณยังสามารถใช้เพื่อชี้ไปยังหน้ารองได้อีกด้วย ตัวอย่างเช่น หากเราต้องการเชื่อมโยงไปยังหน้าเกี่ยวกับเราของเว็บไซต์ของเรา เราสามารถใช้รหัสต่อไปนี้:

 <a href="<?php echo esc_url( home_url() ); ?>/about-us/" />About Us</a>

ตัวอย่างข้อมูลที่คล้ายกันก็ใช้ได้กับรูปภาพเช่นกัน ตัวอย่างนี้ดึงรูปภาพจากโฟลเดอร์ย่อย /images/ ของธีมที่ใช้งานอยู่ของเรา:

 <img src="<?php echo esc_url( get_stylesheet_directory_uri() ) ; ?>/images/hello.png" />

2. การเพิ่มสคริปต์และรูปแบบลงในเทมเพลตโดยตรง

การใช้สคริปต์และสไตล์ของบุคคลที่สามกับ WordPress เป็นโลกของตัวเอง เมื่อคุณเริ่มสร้างธีมในครั้งแรก คุณอาจอยากวางแท็ก <script> หรือ <style> หรือแม้แต่โค้ดฝังฟอนต์ของ Google ลงในส่วนหัวของธีมโดยตรง นี่เป็นวิธีการทั่วไปที่ทำกับไซต์ HTML แบบคงที่ ดังนั้นจึงเหมาะสมที่จะทำเช่นเดียวกันที่นี่

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

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

ตัดสินใจพัฒนาอย่างชาญฉลาด

3. เรียกอินสแตนซ์ภายนอกของ jQuery

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

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

และตามจริงแล้ว การใช้งานองค์ประกอบ jQuery UI ที่ต้องการนั้นไม่ยากเกินไป ตัวอย่างเช่น หากต้องการเปิดใช้งาน jQuery UI Tabs ให้เพิ่มข้อมูลโค้ดต่อไปนี้ใน functions.php ของคุณ:

 function my_jquery_elements() { wp_enqueue_script( 'jquery-ui-tabs', array('jquery')); add_action( 'template_redirect', my_jquery_elements ', 10 );

สิ่งนี้บอกให้ WordPress โหลดองค์ประกอบจากไลบรารีที่มีอยู่แล้ว จากนั้น ออกแบบแท็บและกำหนดแท็บตามที่ระบุไว้ในเอกสารประกอบ jQuery UI

4. ปรับแต่งมากเกินไป

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

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

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

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

5. ไม่สามารถแสดงความคิดเห็นรหัส

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

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

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

ดังนั้นฉันจะไม่เป็นคนหน้าซื่อใจคดและขอร้องให้คุณแสดงความคิดเห็นทุกอย่างอย่างลึกซึ้ง แต่ฉันจะบอกว่าแม้ความพยายามเพียงเล็กน้อยที่นี่ทำให้การบำรุงรักษาในอนาคตง่ายขึ้นสำหรับคุณหรือนักพัฒนารายอื่นที่ต้องทำงานของคุณ

รหัสแสดงความคิดเห็นขั้นต่ำ

เทคนิคที่ดีกว่าเมื่อเวลาผ่านไป

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

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

สุดท้ายนี้ ฉันอยากจะทราบว่าฉันได้ทำผิดพลาดทุกอย่างที่กล่าวมาข้างต้นเป็นการส่วนตัว ผ่านการลองผิดลองถูก ควบคู่ไปกับการเยี่ยมชม Codex หลายครั้งเท่านั้น ทำให้ฉันค้นพบวิธีเริ่มทำสิ่งต่าง ๆ ด้วย “WordPress Way”

บทเรียนคือเราทุกคนจะทำผิดพลาด แต่แต่ละคนเปิดโอกาสให้เราเรียนรู้และปรับปรุง