ความแตกต่างระหว่างไฟล์ปลั๊กอิน (หลัก) และตัวบุ้งของปลั๊กอินคือสถานที่ที่ WordPress Codex สามารถทำได้ดีกว่ามาก ฉันเข้าใจความสับสนของคุณในขณะที่ฉันรู้สึกว่ามันเร็วเกินไป (ปะปนกับความคับข้องใจ)
นี่คือสิ่งที่ฉันได้เรียนรู้จากการทำ "งานนักสืบ" บนโค้ดหลักของ WordPress
ไฟล์ปลั๊กอิน
นี่เป็นวิธีที่ไม่เหมือนใครในการระบุและบันทึกปลั๊กอินของ WordPress มันถูกสร้างขึ้นจากไดเรกทอรีของปลั๊กอินและไฟล์ปลั๊กอินหลัก (หนึ่งที่มีส่วนหัวของไฟล์ที่มีรายละเอียดปลั๊กอินต่าง ๆ เช่นรุ่นผู้เขียน ฯลฯ )
มันจะมีลักษณะเช่นนี้: your-plugin-directory/main-file.php
หากคุณดูข้อมูลปลั๊กอินที่แอ็คทีฟ (คืนโดยget_option( 'active_plugins' )
) คุณจะเห็นว่า WordPress ต้องการไฟล์ปลั๊กอินนี้เพื่อระบุปลั๊กอินอย่างถูกต้องเท่านั้น
คุณสามารถเลือกที่จะคิดว่ามันเป็นเส้นทางหลักของไฟล์ที่สัมพันธ์กับปลั๊กอินของคุณ (สัมพันธ์กับwp-content/plugins/
ไดเรกทอรีที่เป็น) คุณสามารถ "เขียน" พา ธ สัมบูรณ์ของไฟล์ปลั๊กอินหลักด้วยสิ่งนี้:trailingslashit( WP_PLUGIN_DIR ) . $plugin_main_file
แกนตัวเองสร้างไฟล์ปลั๊กอินเช่นนี้:
$plugin_main_file = plugin_basename( trim( $plugin_main_file_absolute_path ) );
ตัวบุ้งปลั๊กอิน
ใคร ๆ ก็คาดหวังว่าปลั๊กอิน "กระสุน" จะเป็นรหัสมาตรฐานบางประเภทสำหรับปลั๊กอินเช่นเสากระสุนสำหรับโพสต์ - ดังนั้นคุณสามารถใช้ "กระสุน" นี้เพื่อมอบให้กับฟังก์ชั่นหลักของเวิร์ดเพรส
ไม่ได้จริงๆ หลังจากค้นหาหลักสำหรับการอ้างอิงถึงทากปลั๊กอิน (หรือชุดรูปแบบสำหรับสิ่งที่สำคัญ) และค้นหาเกือบไม่มีอะไรฉันคิดว่าฉันเข้าใจ
ทากจริงเท่านั้นที่สามารถเข้าถึงได้ผ่านทาง URL ที่ไม่ซ้ำกัน: โพสต์, หน้า, taxonomies ฯลฯ นั่นคือจุดรวมของการใช้ชื่อของบางสิ่ง (เช่นชื่อโพสต์) และสร้าง URL ที่ง่ายต่อการใช้ : ใน URL
แต่เราจะใช้ชุดรูปแบบ / ปลั๊กอิน "ทาก" ใน URL ได้อย่างไร
เราไม่ได้ทำเช่นนั้นในการติดตั้ง WordPress แต่ละตัว - ไม่ได้อยู่ใน WP admin หรือส่วนหน้า
อย่างไรก็ตามมีสถานที่ที่ยุ่งมากกับรหัส WordPress, เว็บไซต์ WordPress.org ผู้คนกำลังประสบความยากลำบากในการแยกความแตกต่างระหว่างสองอย่างรวมถึงมันเป็นเรื่องธรรมดาในหมู่นักพัฒนาในการพิจารณาธีม WordPress.org หรือตัวบุ้งปลั๊กอินควรทำงานเหมือนกับโพสต์หรือหน้ากระสุน
พวกเขาให้บริการวัตถุประสงค์เดียวกัน แต่ในเว็บไซต์แยกต่างหาก ใน WordPress.org พวกเขาจะใช้เพื่อระบุธีมจากผู้อื่นและปลั๊กอินจากส่วนที่เหลือ (ใน URL เช่นhttps://wordpress.org/plugins/akismet/
)
แต่เมื่อมันมาถึงการติดตั้ง WordPress แต่ละตัวเอกลักษณ์เดียวกันไม่สามารถรับประกันได้เพราะไม่มีอำนาจในการบังคับใช้มัน (เช่นบน WordPress.org) มันอาจจะทำงานหากทุกปลั๊กอินและธีมมาจาก WordPress.org แต่โชคดีที่ไม่ได้เป็นกรณีที่
โค้ดเวิร์ดเพรสทำอะไรกับตัวบุ้งธีม / ปลั๊กอิน?
รหัสหลักของ WordPress ไม่ได้ขึ้นอยู่กับทากธีม / ปลั๊กอินเพื่อทำสิ่งต่าง ๆ เช่นการติดตั้งการเปิดใช้งานการอัพเดตการลบธีมหรือปลั๊กอิน
สำหรับธีมนั้นต้องอาศัยไดเร็กทอรีธีมเนื่องจากจุดเข้าหลักในธีมคือstyle.css
ไฟล์ (คุณไม่สามารถใช้ไฟล์ CSS อื่นเพื่อเก็บส่วนหัวรายละเอียดธีมของคุณ)
สำหรับปลั๊กอินนั้นจะอาศัยไดเรกทอรีปลั๊กอินและไฟล์ปลั๊กอินหลักเนื่องจากปลั๊กอินสามารถเรียกไฟล์หลักได้ตามต้องการ
สิ่งเดียวที่แกนหลักใช้ทากธีม / ปลั๊กอินสำหรับคือเมื่อจัดการธีมและปลั๊กอินจากไดเรกทอรี WordPress.org:ดึงรายการของปลั๊กอินตรวจสอบการปรับปรุงรายงานกลับไปที่ข้อมูลการใช้ไดเรกทอรีและอื่น ๆ
ในการสรุปข้อมูลเกี่ยวกับตัวบุ้งปลั๊กอิน:เมื่อใดก็ตามที่คุณพบข้อมูลปลั๊กอินที่มีslug
รายการ 99% ของเวลาจะอ้างถึงตัวบุ้ง WordPress.org ของปลั๊กอิน
เราจะระบุปลั๊กอินอย่างไร?
หากคุณต้องการเปิดใช้งานอัปเดตปิดใช้งานหรือลบปลั๊กอินบางอย่างโดยทางโปรแกรมในการติดตั้ง WordPress คุณต้องใช้ไฟล์ปลั๊กอิน คุณสามารถทำให้เป็นแบบนี้ได้จากไฟล์หลักของปลั๊กอิน:
$plugin_file = plugin_basename( __FILE__ );
หากคุณต้องการกำหนดเป้าหมายปลั๊กอินบางตัวจากปลั๊กอินอื่นสิ่งต่าง ๆ จะยุ่งยากเล็กน้อยเนื่องจากคุณต้องพึ่งพา "การคาดเดา" สักเล็กน้อย
คุณสามารถเขียนโค้ดปลั๊กอินได้ยากค้นหาปลั๊กอินในรายการปลั๊กอินทั้งหมด (ดูที่get_plugins () ) และรับไฟล์ปลั๊กอินจากที่นั่น
หากคุณทราบคลาสหรือฟังก์ชันที่กำหนดโดยปลั๊กอินนั้นคุณสามารถใช้การสะท้อน (ดูคำตอบนี้สำหรับคลาสและคลาสนี้สำหรับฟังก์ชั่น)
ฉันหวังว่าสิ่งนี้จะช่วยคุณและผู้อื่นที่อาจมีปัญหาในการจัดการกับ "ปลั๊กอินกระสุน" มันอาจช่วยฉันสองสามชั่วโมง :)