如何檢查插件在 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 插件被激活
}

插件基本文件和基本目錄

如您所見,我使用了 WooCommerce 插件基本名稱和文件夾,正如我使用上圖所說明的那樣。
插件的基本名稱是作為主文件的單個文件插件的文件名,有時它與目錄/文件夾匹配,但並非所有情況 - 有些插件是不同的。

檢查插件是否在多站點中處於活動狀態

對於 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
如果(函數存在(“插件函數”)){
// 插件激活
}

使用 class_exists() 檢查插件是否處於活動狀態

如果您知道插件的主類,則可以使用class_exists方法進行檢查,如下面的代碼片段所示:

 <?php
如果(class_exists('plugin_class')){
// 插件激活
}

您可以使用這些方法中的任何一種來檢查plugins_loaded鉤子上的插件是否處於活動狀態,如下面的代碼片段所示:

 <?php
/*
* 測試插件是否處於活動狀態
*/

功能 njengah_is_plugin_name_active() {
如果(class_exists('Plugin_Class')){

// 它是活動的,所以這裡的邏輯

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

結論

在這篇文章中,我們重點介紹了在您開發另一個插件或主題時檢查插件是否處於活動狀態的各種方法。 這些是可以應用於所有 WordPress 開發任務的有用方法。

類似文章