如何檢查插件在 WordPress 中是否處於活動狀態 [3 種方式]
已發表: 2020-08-08作為 WordPress 開發人員,在開發插件時,代碼中最常見的檢查之一是插件激活的狀態。您應該檢查插件是否處於活動狀態的原因有很多。 僅舉幾例,您可以檢查依賴插件是否處於活動狀態或執行相同操作的類似插件。
無論哪種情況,您都需要在插件基礎文件中添加檢查以檢查目標插件是否處於活動狀態。 如果您正在開發擴展 WooCommerce 類的 WooCommerce 插件,這是一個經典示例。
例如,當您開發 WooCommerce 支付網關插件時,您需要在插件激活後立即檢查 WooCommerce 是否處於活動狀態,或者最好在插件激活掛鉤期間檢查。
檢查 WordPress 插件是否處於活動狀態
幸運的是,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.php
,如上所示
下圖:
函數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 開發任務的有用方法。
類似文章
- 如何在沒有插件的情況下阻止 WordPress 聯繫表格 7 垃圾郵件
- 如何在不使用插件的情況下在 WordPress 中創建登錄頁面
- 用於客戶反饋的 26 個最佳 WooCommerce 插件
- 保護您的網站的 30 個最佳 WordPress 安全插件
- 如何將刪除圖標添加到 WooCommerce 結帳頁面
- 如何在 Woocommerce 中更改退貨至商店鏈接
- 如何在 Woocommerce 中獲取訂單 ID
- 用於結帳頁面定制的 23 個最佳 WooCommerce 插件
- 如何在 WooCommerce 中隱藏購物車小計或刪除小計行
- 登錄 WooCommerce 後如何重定向到購物車
- 如何在刷新 WordPress 頁面時重定向 » 檢測頁面刷新 PHP
- 如何使用實際示例在 WordPress 中顯示類別名稱
- 如何刪除已添加到您的購物車消息 WooCommerce
- 如何通過示例在 WordPress 中創建自定義查詢分頁
- 如何跳過購物車並重定向到結帳頁面 WooCommerce
- 在 WooCommerce 中如何在價格前添加文本 » 在價格前添加文本
- 如何在 WordPress 中獲取登錄用戶信息
- 如果未登錄 WordPress 如何重定向用戶 » 頁面重定向
- 如何更改 WooCommerce 的“已添加到購物車”通知
- 如何在 WooCommerce 中顯示庫存可用性文本 » In Stock & Out