如何检查插件在 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