คำแนะนำเกี่ยวกับการใช้ปลั๊กอินฟังก์ชันแบบกำหนดเองใน WordPress
เผยแพร่แล้ว: 2024-03-07กว่าทศวรรษในฐานะนักพัฒนาแบ็คเอนด์ WordPress ฉันใช้วิธีการต่างๆ เพื่อปรับ WordPress ให้ตรงตามความต้องการของฉันและผู้อื่น สิ่งที่พบบ่อยที่สุดคือการเขียนปลั๊กอินฟังก์ชั่นที่กำหนดเองของ WordPress ดังที่คุณจะเห็นด้านล่าง นี่ไม่ใช่ตัวเลือกเดียวและไม่ใช่ตัวเลือกที่ถูกต้องเสมอไป
ขณะที่ฉันอุทิศโพสต์นี้ให้กับนักพัฒนา ผู้จัดการโครงการจะได้เรียนรู้ว่าวิธีการเหล่านี้ตรงกับความต้องการของทีมอย่างไร รวมถึงเวลาและวิธีการใช้งาน
นี่คือวิธีที่ฉันใช้ปรับแต่ง WordPress:
- เพิ่มโค้ดของคุณไปที่
functions.php
ของธีม.php - เขียนปลั๊กอินฟังก์ชันแบบกำหนดเองของ WordPress
- ใช้ปลั๊กอินเพื่อจัดการข้อมูลโค้ดที่กำหนดเอง
- โบนัส: ต้องใช้ปลั๊กอิน
เรามาดูรายละเอียดแต่ละวิธีเหล่านี้กันดีกว่า
เพิ่มโค้ดใน function.php
ในยุค “เก่า” เมื่อ WordPress ใช้ PHP เป็นหลักทั้งส่วนหน้าและส่วนหลัง วิธีที่รวดเร็วที่สุดในการเปลี่ยนแปลงเว็บไซต์ของคุณคือการเพิ่มโค้ดลงใน Functions.php ของธีม
คุณยังสามารถทำเช่นนี้ได้ และหากคุณกล้า ให้ใช้ Theme File Editor ในแดชบอร์ด WordPress
เมื่อเวลาผ่านไป สิ่งนี้เปลี่ยนจากวิธีที่ฉันชอบในการปรับแต่ง WordPress มาเป็นวิธีที่ฉันชอบน้อยที่สุด
เหตุผลหลักก็คือว่า functions.php
แนบมากับธีม หากนั่นไม่ใช่ธีมที่กำหนดเองและมีคนอัปเดต การปรับเปลี่ยนของฉันก็จะหายไป
วิธีแก้ไขคือสร้างธีมลูกที่มีการเปลี่ยนแปลงที่เกี่ยวข้องกับธีมหลัก
เหตุผลหลักของฉันที่ไม่เพิ่มโค้ดที่กำหนดเองลงในไฟล์ functions.php
มากนักอีกต่อไปก็คือ ในความเป็นจริงแล้ว โค้ดส่วนใหญ่เป็นพื้นที่ของปลั๊กอิน ซึ่งเป็นการเพิ่มฟังก์ชันการทำงานให้กับไซต์โดยทั่วไป ไม่ใช่เฉพาะธีมเท่านั้น
ยังมีสองสถานการณ์ที่ฉันเขียนโค้ดที่กำหนดเองลงใน functions.php
:
- รหัสเกี่ยวข้องกับธีมที่กำหนดเองหรือธีมย่อย
- ทดสอบการเปลี่ยนแปลงอย่างรวดเร็วก่อนที่จะย้ายไปยังที่อื่นเนื่องจาก
functions.php
มักจะเข้าถึงได้ง่าย
นอกจากนี้ โปรดทราบว่า functions.php
ไม่ใช่ที่สำหรับโฮสต์การเปลี่ยนแปลงจำนวนมาก เนื่องจากไฟล์เดียวอาจซับซ้อนเกินไป โดยเฉพาะอย่างยิ่งเมื่อต้องการไฟล์ PHP หลายไฟล์และไฟล์ประเภทอื่น ๆ ในการเปลี่ยนแปลงของฉัน ฉันเลือกที่จะเขียนปลั๊กอินฟังก์ชันแบบกำหนดเองของ WordPress
การเขียนปลั๊กอินฟังก์ชันแบบกำหนดเอง
ตามที่กล่าวไว้ข้างต้น โค้ดส่วนใหญ่ที่ฉันเพิ่มลงในไซต์ของฉันกำลังสร้างหรือขยายฟังก์ชันการทำงานที่ไม่ขึ้นอยู่กับธีม
เมื่อฉันรู้ว่าฉันจะเพิ่มการปรับแต่งเพิ่มเติมให้กับไซต์ ฉันจะเริ่มปลั๊กอินฟังก์ชันแบบกำหนดเอง โดยปกติแล้วจะมีชื่อของเว็บไซต์ เหมือนกับที่ฉันจะเรียกมันว่า WP Mayor ซึ่งเป็นปลั๊กอิน “WP Mayor Custom Functions”
การตั้งชื่อเป็นสิ่งสำคัญ! ขั้นแรก ช่วยให้ผู้ดูแลระบบรายอื่นเห็นว่าปลั๊กอินนี้เกี่ยวข้องกับไซต์ และอาจโฮสต์เฉพาะการเปลี่ยนแปลงเท่านั้น
ประการที่สอง การรักษาโฟลเดอร์ปลั๊กอินและชื่อไฟล์ให้ไม่ซ้ำกันจะป้องกันไม่ให้ไซต์ WordPress ของคุณเขียนทับโดยไม่ได้ตั้งใจด้วยปลั๊กอินที่มีกระสุนเหมือนกันในที่เก็บปลั๊กอิน wordpress.org
การสร้างปลั๊กอินฟังก์ชันแบบกำหนดเองของ WordPress เป็นเรื่องง่าย สิ่งที่คุณต้องมีคือไฟล์ PHP ไฟล์เดียวภายใน wp-content/plugins
อย่างไรก็ตาม คุณควรสร้างโฟลเดอร์ใหม่ก่อน เนื่องจากคุณมักจะต้องมีไฟล์มากกว่าหนึ่งไฟล์เพื่อจัดโครงสร้างโค้ดของคุณ และอาจต้องการเพิ่มไฟล์สำหรับโค้ด JavaScript และ CSS
ตามตัวอย่างของเรา สมมติว่าตอนนี้เรามีโฟลเดอร์ wp-content/plugins/wp-mayor-custom-functions/wp-mayor-custom-functions.php
และไฟล์หลัก
มาเพิ่มส่วนหัวให้กับไฟล์เพื่อบอก WordPress ว่าปลั๊กอินของเราเกี่ยวกับอะไร แม้ว่า “ชื่อปลั๊กอิน” จะเพียงพอสำหรับการทำงานในทางเทคนิคแล้ว แต่เรามาดูตัวอย่างขั้นสูงเพิ่มเติมกัน:
/** * Plugin Name: WP Mayor Custom Function * Plugin URI: https://wpmayor.com * Description: All the cool features we custom-built for us. * Version: 1.0.0 * Requires at least: 6.2 * Requires PHP: 8.1 * Author: Thomas Maier */
สิ่งนี้ควรปรากฏใต้ “ปลั๊กอิน” ในแดชบอร์ด WordPress ของเราแล้ว
ตอนนี้เราสามารถเพิ่มโค้ด PHP จริงลงในไฟล์ของเราได้แล้ว
เคล็ดลับ: เมื่อฉันไม่สามารถเข้าถึงไซต์ด้วย FTP หรือแค่ขี้เกียจ ฉันจะใช้ปลั๊กอิน Pluginception เพื่อหมุนบางสิ่งอย่างรวดเร็ว ซึ่งฉันสามารถเติมโค้ดในภายหลังผ่านตัวแก้ไขไฟล์ปลั๊กอินในแดชบอร์ด WordPress
ตอนนี้คุณควรใส่โค้ดทั้งหมดสำหรับไซต์ใดไซต์หนึ่งลงในปลั๊กอินฟังก์ชันแบบกำหนดเองเฉพาะตัวเดียวหรือไม่
มันขึ้นอยู่กับ. เมื่อฉันรู้ว่ามีการใช้โค้ดแบบกำหนดเองกับหลายโปรเจ็กต์ ฉันจะแยกมันออกเป็นปลั๊กอินอื่น ในเวลาเดียวกัน ฉันรวบรวมโค้ดที่ทุ่มเทให้กับไซต์ใดไซต์หนึ่งโดยเฉพาะในปลั๊กอินตัวเดียว ยิ่งปลั๊กอินน้อยลง ที่เก็บโค้ดก็น้อยลงที่ฉันต้องบำรุงรักษา
ฟังดูดีมากเลยเหรอ? ในขณะที่จัดการบริษัทปลั๊กอินขนาดใหญ่ในช่วงหลายปีที่ผ่านมาและทำการปรับเปลี่ยนเว็บไซต์มากกว่าร้อยครั้ง ฉันสังเกตเห็นว่าปลั๊กอินแบบกำหนดเองเหล่านี้ยังคงมุ่งเน้นที่นักพัฒนาเป็นหลัก ลองดูแนวทางอื่นในหัวข้อถัดไป
การใช้ปลั๊กอินฟังก์ชันที่กำหนดเองสำหรับข้อมูลโค้ด
เวลาส่วนใหญ่ของฉันในธุรกิจปลั๊กอินขนาดใหญ่ ฉันรับผิดชอบด้านเทคนิคของร้านปลั๊กอินของเรา
ฉันใส่โค้ดที่ไม่เฉพาะเจาะจงธีมลงในปลั๊กอินฟังก์ชันที่กำหนดเองตัวเดียว การปรับเปลี่ยนทั้งหมดสำหรับปลั๊กอินและการปรับแต่งแต่ละรายการ เช่น การเปลี่ยนเส้นทางการ์ดเปล่าไปยังหน้าราคา การเสนอราคาเพิ่มยอดขาย หรือข้อเสนอ Black Friday ได้รับการจัดทำเป็นเอกสารและกระจายไปยังไฟล์ต่างๆ ที่มีชื่อที่สามารถอ่านได้
“มีเอกสาร” และ “สามารถอ่านได้” สำหรับใครก็ตามที่สามารถเข้าถึงโค้ดได้
แม้ว่าฉันจะคอยทำการปรับเปลี่ยนหรือตอบคำถามเกี่ยวกับสิ่งเหล่านั้นอยู่เสมอ แต่ฉันรู้สึกว่านี่ไม่ใช่วิธีที่มีประสิทธิภาพและยั่งยืนในการจัดการฟังก์ชันที่กำหนดเองส่วนใหญ่
เนื่องจากมีผู้คนเข้ามามีส่วนร่วมในการจัดการร้านค้าและเว็บไซต์มากขึ้นเรื่อยๆ ฉันจึงอยากให้พวกเขามีโอกาสทราบเกี่ยวกับการปรับเปลี่ยนโดยไม่ต้องอัปเดตเพจเฉพาะในฐานความรู้ของเราให้ทันสมัยอยู่เสมอ
วิธีแก้ไขคือติดตั้งปลั๊กอินฟังก์ชันแบบกำหนดเองของ WordPress ที่จัดการข้อมูลโค้ดทั้งหมดหรือส่วนใหญ่ในแดชบอร์ด WordPress
สิ่งที่ฉันชอบเป็นการส่วนตัวคือปลั๊กอิน Code Snippets ฟรี แต่ก็มีปลั๊กอินอื่นๆ อีกเช่นกัน
ด้วย Code Snippets จะมีรายการเมนูเฉพาะในแดชบอร์ดพร้อม Snippet ทั้งหมด
ตอนนี้ใครก็ตามที่มีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบสามารถดูการปรับเปลี่ยนได้ ฉันใช้ชื่อที่สื่อความหมายสำหรับแต่ละตัวอย่าง ใช้ช่องบันทึกเพื่ออธิบายในเชิงลึก และกำหนดแท็กให้กับการเปลี่ยนแปลงกลุ่ม
แท็กของฉันมักจะเป็นชื่อของปลั๊กอินหรือธีมที่ได้รับการปรับปรุงและส่วนของหน้าที่เกี่ยวข้องกับเรื่องนี้ เช่น “WooCommerce” และ “ชำระเงิน”
หากคุณเลือกชื่อที่ดีและมีโครงสร้างที่ดี ทุกคนควรจะสามารถค้นหาและเข้าใจการปรับเปลี่ยนได้ รวมตัวผมด้วย. ฉันใช้วิธีนี้แม้บนเว็บไซต์ส่วนตัวของฉันเพราะมันให้ความสะดวกสบายมาก
การใช้ปลั๊กอินฟังก์ชันที่กำหนดเองมีประโยชน์อย่างยิ่งสำหรับตัวอย่างโค้ดที่คุณต้องการเพียงชั่วคราว เช่น โค้ดล้างข้อมูลบางส่วนที่ต้องรันเพียงครั้งเดียวเป็นครั้งคราว หรือการดำเนินการที่ส่วนหน้า เช่น การเปิดใช้งานโปรโมชัน
ปลอดภัยไหม?
ตามค่าเริ่มต้น WordPress อนุญาตให้ทุกคนที่มีบทบาท “ผู้ดูแลระบบ” แก้ไขไฟล์ปลั๊กอินและธีมในแบ็กเอนด์ได้ การใช้ปลั๊กอินโค้ดที่กำหนดเองก็ไม่แตกต่างไปจากนี้ ดังนั้น กฎเก่าในการป้องกันและมอบบทบาทที่จำเป็นให้กับทุกคนเท่านั้นยังคงใช้อยู่
นักพัฒนาอาจต้องการทราบว่า hooks แรกเริ่มบางรายการในคำขอเพจไม่พร้อมใช้งานเมื่อจัดการโค้ดผ่านปลั๊กอิน เนื่องจากตัวปลั๊กอินจำเป็นต้องโหลดก่อน หากคุณต้องการให้โค้ดที่คุณกำหนดเองโหลดก่อนปลั๊กอินอื่น โปรดดูตัวเลือกต้องใช้ปลั๊กอินด้านล่าง
ฟังก์ชัน WordPress แบบกำหนดเองในต้องใช้ปลั๊กอิน
ปลั๊กอินที่เรียกว่า “ต้องใช้” นั้นเป็นปลั๊กอินชนิดพิเศษ
เนื่องจากพวกมันทำงานก่อนปลั๊กอิน “ปกติ” อื่นๆ ฉันจึงใช้พวกมันเพื่อเปิดหรือปิดปลั๊กอินเฉพาะสำหรับเพจที่กำหนด คุณสามารถใช้โค้ดดังกล่าวเพื่อเร่งความเร็ว API หลอกหรือเรียกไปที่ admin-ajax.php
คุณสมบัติอื่นของปลั๊กอินที่ต้องใช้คือเปิดใช้งานตามค่าเริ่มต้น และไม่มีใครสามารถปิดใช้งานหรือเปลี่ยนแปลงได้ผ่านแดชบอร์ด WordPress ทำให้เหมาะสำหรับโค้ดที่จำเป็นซึ่งแม้แต่ผู้ดูแลระบบก็ไม่ควรสามารถเข้าถึงได้
การสร้างปลั๊กอิน mu
Must Use Plugins โฮสต์อยู่ในโฟลเดอร์ wp-content/mu-plugins
โฟลเดอร์นี้ไม่มีอยู่ในการติดตั้ง WordPress ใหม่ ปลั๊กอินหรือบริษัทโฮสติ้งบางแห่งอาจเพิ่มเนื้อหาที่นี่แบบไดนามิก
หากต้องการเพิ่มปลั๊กอินใหม่ในโฟลเดอร์ mu-plugin คุณต้องสร้างไฟล์ PHP บนคอมพิวเตอร์ของคุณด้วยส่วนหัวของไฟล์ปลั๊กอินที่ฉันแสดงให้คุณดูด้านบนสำหรับปลั๊กอินแบบกำหนดเองของเรา ในครั้งนี้ การเลือกชื่อที่ไม่ซ้ำนั้นไม่ใช่เรื่องสำคัญ เนื่องจากปลั๊กอิน Must Use จะไม่อัปเดตโดยอัตโนมัติ
เมื่อคุณพอใจกับปลั๊กอินฟังก์ชันแบบกำหนดเองใหม่แล้ว ให้อัปโหลดด้วยตนเองผ่าน FTP ไปยังโฟลเดอร์ wp-content/mu-plugins
สร้างโฟลเดอร์ mu-plugins
หากไม่มีอยู่
แม้ว่าคุณจะไม่สามารถเปลี่ยนปลั๊กอินที่ต้องใช้ผ่านแผงผู้ดูแลระบบของ WordPress ได้ แต่คุณสามารถดูปลั๊กอินเหล่านั้นได้ในรายการปลั๊กอิน > ต้องใช้
ตามหลักการแล้ว ปลั๊กอินที่ต้องใช้คือปลั๊กอินแบบไฟล์เดียว WordPress ไม่พบไฟล์เหล่านั้นในโฟลเดอร์ย่อย แม้ว่าคุณจะสามารถอ้างอิงไฟล์เพิ่มเติมในไฟล์ PHP หลักได้ก็ตาม แต่ถ้าคุณสร้างปลั๊กอิน Must Use ที่ซับซ้อน ลองคิดถึงการย้ายโค้ดหลักไปไว้ในปลั๊กอินปกติ และใช้ปลั๊กอิน MU เพื่อโหลดสิ่งที่จำเป็นในการทำงานก่อนปลั๊กอินอื่นๆ ทั้งหมดเท่านั้น
บทสรุป
เราได้สำรวจวิธีการต่างๆ ในการเพิ่มโค้ดแบบกำหนดเองลงใน WordPress ตั้งแต่การเพิ่มโค้ดแบบดั้งเดิมไปจนถึงไฟล์ functions.php
ของธีม ปลั๊กอินแบบสแตนด์อโลน และปลั๊กอินฟังก์ชันแบบกำหนดเองของ WordPress ไปจนถึงการใช้ Must Use (mu-plugins) แต่ละวิธีมีข้อดีและข้อเสียที่เป็นไปได้แตกต่างกันออกไป ซึ่งปรับให้เหมาะกับความต้องการและสถานการณ์ที่แตกต่างกัน
อย่างที่คุณเห็น นี่เป็นการเดินทางสำหรับฉันในฐานะนักพัฒนาและผู้จัดการโครงการ ทุกวันนี้ฉันยังคงใช้วิธีการทั้งหมดขึ้นอยู่กับประเภทของการเปลี่ยนแปลงและใครควรมีสิทธิ์เข้าถึง
ฉันหวังว่าบทความนี้จะช่วยคุณซึ่งเป็นนักพัฒนารุ่นเยาว์และรุ่นอาวุโสในการตัดสินใจด้วยตนเองเกี่ยวกับวิธีที่ถูกต้องในการเพิ่มโค้ดเป็นปลั๊กอินฟังก์ชันที่กำหนดเองใน WordPress แจ้งให้เราทราบในความคิดเห็นหากฉันพลาดสิ่งใด