วิธีตรวจสอบว่าปลั๊กอินมีการใช้งานใน WordPress หรือไม่ [ 3 วิธี ]

เผยแพร่แล้ว: 2020-08-08

ตรวจสอบว่ามีการใช้งานปลั๊กอินใน WordPress . หรือไม่ ในฐานะนักพัฒนา WordPress หนึ่งในการตรวจสอบที่พบบ่อยที่สุดในโค้ดของคุณเมื่อพัฒนาปลั๊กอินคือสถานะของการเปิดใช้งานปลั๊กอิน มีสาเหตุหลายประการที่คุณควรตรวจสอบว่าปลั๊กอินทำงานอยู่หรือไม่ หากต้องการกล่าวถึงบางส่วน คุณสามารถตรวจสอบได้ว่าปลั๊กอินที่ขึ้นต่อกันนั้นทำงานอยู่หรือปลั๊กอินที่คล้ายกันที่ทำสิ่งเดียวกันหรือไม่

ไม่ว่าในกรณีใด คุณจะต้องเพิ่มการตรวจสอบในไฟล์ฐานปลั๊กอินของคุณเพื่อตรวจสอบว่าปลั๊กอินเป้าหมายทำงานอยู่หรือไม่ ตัวอย่างคลาสสิกหากคุณกำลังพัฒนาปลั๊กอิน WooCommerce ที่ขยายคลาส WooCommerce

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

ตรวจสอบว่าปลั๊กอิน WordPress ทำงานอยู่หรือไม่

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

is_plugin_active WordPress

ฟังก์ชันนี้จะคืนค่า boolean - true or false และคุณสามารถรวมมันในโค้ดของคุณได้โดยง่าย โดยเฉพาะระหว่างเบ็ดการเปิดใช้งาน

หากปลั๊กอินที่คุณกำลังตรวจสอบไม่ทำงาน คุณสามารถแสดงการแจ้งเตือนส่วนหัวเพื่อให้ผู้ใช้ติดตั้งปลั๊กอินได้

คุณยังสามารถใช้ฟังก์ชันเดียวกันนี้เมื่อคุณต้องการให้ผู้ใช้ปิดใช้งานปลั๊กอินอื่นที่อาจขัดแย้งกับฟังก์ชันการทำงานของปลั๊กอินของคุณ

ฟังก์ชัน is_plugin_active() การตรวจสอบด่วน

ให้เราดูที่ฟังก์ชัน is_plugin_active() อย่างรวดเร็ว เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการใช้งานอย่างมีประสิทธิภาพในโครงการของคุณ

is_plugin_active( string $plugin )

ฟังก์ชันนี้ใช้พารามิเตอร์สตริงที่เป็นตัวแทนของพาธไปยังพาธสัมพัทธ์ของปลั๊กอินในไดเร็กทอรีปลั๊กอิน

 ฟังก์ชัน is_plugin_active ( $plugin ) {
    ส่งคืน in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) || is_plugin_active_for_network( $plugin );
}

ตัวอย่างเช่น WooCommerce คือเส้นทาง woocommerce/woocommerce.php ตามที่แสดงบน
ภาพด้านล่าง:
เส้นทางไฟล์พื้นฐานของ WooCommerce

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

 <?php
/**
* ตรวจหาปลั๊กอิน สำหรับใช้ในพื้นที่ผู้ดูแลระบบเท่านั้น
*/
if ( is_plugin_active ( 'plugin-directory/plugin-file.php' ) ) {
//ปลั๊กอินถูกเปิดใช้งาน
}

ตัวอย่างเช่น หากคุณต้องการตรวจสอบว่า WooCommerce ทำงานอยู่หรือไม่ คุณสามารถตรวจสอบโดยใช้รหัสต่อไปนี้:

 <?php
/**
* ตรวจสอบว่าปลั๊กอิน WooCommerce ทำงานอยู่ในพื้นที่ผู้ดูแลระบบหรือไม่
*/
if ( is_plugin_active ( 'woocommerce/woocommerce.php' ) ) {
//เปิดใช้งานปลั๊กอิน WooCommerce
}

ปลั๊กอิน Basefile & ไดเรกทอรีฐาน

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

ตรวจสอบว่าปลั๊กอินใช้งานได้ใน Multisite

สำหรับ WordPress หลายไซต์ มีฟังก์ชันที่ออกแบบมาเพื่อช่วยให้นักพัฒนาตรวจสอบว่าปลั๊กอินทำงานอยู่ในเครือข่ายหลายไซต์หรือไม่ ฟังก์ชั่นคือ:

is_plugin_active_for_network( string $plugin )

ฟังก์ชันนี้ทำงานเหมือนกับฟังก์ชัน is_plugin_active( string $plugin ) และสามารถนำมาใช้ในลักษณะเดียวกันเพื่อตรวจสอบว่าปลั๊กอินทำงานอยู่ในเครือข่ายหลายไซต์ของ WordPress หรือไม่

 <?php
ฟังก์ชัน is_plugin_active_for_network( $plugin ) {
    ถ้า ( ! is_multisite() ) {
        คืนค่าเท็จ;
    }
 
    $plugins = get_site_option( 'active_sitewide_plugins' );
    if ( isset( $plugins[ $plugin ] ) ) {
        คืนค่าจริง;
    }
 
    คืนค่าเท็จ;
}

วิธีอื่นในการตรวจสอบว่าปลั๊กอินทำงานอยู่หรือไม่

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

ใช้ function_exists() เพื่อตรวจสอบว่าปลั๊กอินทำงานอยู่หรือไม่

หากคุณรู้จักฟังก์ชันหรือเมธอดของปลั๊กอิน คุณสามารถตรวจสอบได้โดยใช้เมธอด function_exists ดังตัวอย่างด้านล่าง:

 <?php
ถ้า ( function_exists ( 'plugin_function' ) ) {
// ปลั๊กอินทำงานอยู่
}

ใช้ class_exists() เพื่อตรวจสอบว่าปลั๊กอินทำงานอยู่หรือไม่

หากคุณรู้จักคลาสหลักของปลั๊กอิน คุณสามารถตรวจสอบได้โดยใช้เมธอด class_exists ดังตัวอย่างด้านล่าง:

 <?php
if( class_exists( 'plugin_class' ) ) ) {
// ปลั๊กอินทำงานอยู่
}

คุณสามารถขอวิธีใดวิธีหนึ่งเหล่านี้เพื่อตรวจสอบว่าปลั๊กอินใช้งานได้บน plugins_loaded ของ plugins_loaded เช่นเดียวกับในข้อมูลโค้ดด้านล่าง:

 <?php
/*
* ทดสอบว่าปลั๊กอินทำงานอยู่หรือไม่
*/

ฟังก์ชัน njengah_is_plugin_name_active () {
ถ้า ( class_exists ( 'Plugin_Class' ) ) {

// มันใช้งานอยู่ ทำตรรกะที่นี่

}
}
add_action( 'plugins_loaded', 'njengah_is_plugin_name_active' );

บทสรุป

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

บทความที่คล้ายกัน