มีการโหลดปลั๊กอินอะไรใน WordPress?
และภายในโฟลเดอร์ของปลั๊กอินเฉพาะคำสั่งใดบ้างที่จะโหลด
มีการโหลดปลั๊กอินอะไรใน WordPress?
และภายในโฟลเดอร์ของปลั๊กอินเฉพาะคำสั่งใดบ้างที่จะโหลด
คำตอบ:
ในwp-settings.php
WordPress ตรวจสอบปลั๊กอินที่ต้องใช้ก่อน (ปลั๊กอินในmu-plugins
โฟลเดอร์ทางเลือก) ก่อนและโหลดปลั๊กอินเหล่านั้น
จากนั้นหากคุณใช้การติดตั้งหลายไซต์มันจะตรวจสอบปลั๊กอินที่เปิดใช้งานเครือข่ายและโหลดไฟล์เหล่านั้น
จากนั้นจะตรวจสอบปลั๊กอินที่ใช้งานอื่น ๆ ทั้งหมดโดยดูที่active_plugins
รายการของwp_options
ตารางฐานข้อมูลและวนซ้ำไปเรื่อย ๆ ปลั๊กอินจะแสดงรายการตามตัวอักษร
นี่คือการสั่งซื้อ WordPress โหลดทุกอย่างสวย ๆ : http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request
สิ่งนี้คือโดยปกติไม่สำคัญว่าจะเรียงลำดับปลั๊กอินแต่ละตัวอย่างไรเพราะปลั๊กอินที่เขียนอย่างถูกต้องจะใช้ WordPress hooks ซึ่งช่วยให้คุณเชื่อมต่อการทำงานเข้ากับจุดเฉพาะในภายหลังในการเริ่มต้น WordPress (ปลั๊กอินที่เขียนอย่างเหมาะสมจะนำหน้าฟังก์ชั่นและคลาสของตัวเองเพื่อไม่ให้เกิดความขัดแย้ง)
ข้อมูลเพิ่มเติมเกี่ยวกับปลั๊กอิน API: http://codex.wordpress.org/Plugin_API/
ทั้งหมดขึ้นอยู่กับปลั๊กอิน WordPress โหลดไฟล์เดียวในปลั๊กอินไฟล์ที่มักจะตั้งชื่อthe-plugin-name.php
และมีชื่อคำอธิบายผู้แต่ง ฯลฯ ที่ด้านบน มันขึ้นอยู่กับปลั๊กอินที่จะโหลดส่วนที่เหลือของไฟล์ที่ใช้require_once
และwp_enqueue_script
และ whatnot
apply_filters()
ในการสร้างเบ็ด แต่ทำงานก่อนปลั๊กอินที่ใช้add_filter()
แล้วมันจะยังคงทำงานได้หรือไม่ ดูเหมือนว่าapply_filters()
จะมีเหตุมีผลแล้วดังนั้นการadd_filter()
โทรในปลั๊กอินที่สองจะไม่ทำอะไรเลย มันมีความสำคัญอย่างไรในการเรียงลำดับปลั๊กอินเมื่อใช้ hooks ที่สร้างโดยปลั๊กอินเท่านั้น?
apply_filters()
ผ่านไป ต้องทำงานก่อนadd_filter()
apply_filters()
ถ้าadd_filter()
อยู่ในแฟ้มปลั๊กอินและไม่อยู่ในฟังก์ชั่นอื่นก็จะทำงานบนตะขอซึ่งโดยทั่วไปจะเกิดขึ้นก่อนที่คุณจะต้องplugins_loaded
apply_filters()
the_content
- ลำดับของลักษณะที่ปรากฏของพวกเขาจะถูกกำหนดอย่างไร?
ฉันพบว่ามันมีประโยชน์ที่จะรวมการกระทำ 'โหลดช้า' ในปลั๊กอินของฉันที่ทำงานหลังจากปลั๊กอินทั้งหมดเสร็จสิ้นการโหลดเช่นนี้:
add_action('plugins_loaded', 'my_late_loader');
ฟังก์ชั่น my_late_loader นั้นเริ่มต้นหลังจากปลั๊กอินอื่น ๆ ทั้งหมดซึ่งอนุญาตให้ฉันใช้ hooks ที่กำหนดโดยปลั๊กอินอื่น ๆ ในฟังก์ชั่นของฉันเอง my_other_function ซึ่งเริ่มต้นภายใน my_late_loader
/**
* Late loading function for actions that must run after all plugins
* have loaded
*/
function my_late_loader(){
add_action( 'some_hook', 'my_other_function', 10, 1);
}
บิตที่ซับซ้อน (ฉันรู้) แต่สิ่งนี้ทำให้มั่นใจได้ว่าตะขอในปลั๊กอินอื่น ๆ จะถูกสร้างขึ้นก่อนที่จะถูกเพิ่มโดยไม่คำนึงถึงลำดับการโหลดปลั๊กอิน