【问题标题】:in_array() expects parameter 2 to be array, boolean given in linein_array() 期望参数 2 是数组,布尔值在行中给出
【发布时间】:2020-04-25 12:07:29
【问题描述】:

在我的服务器的错误日志中,我收到以下 PHP 警告:

in_array() 期望参数 2 是数组,布尔值在第 45 行的“//...”中给出。

在第 45 行,我有一个功能可以检查 WooCommerce 插件是否处于活动状态。

    /**
     * Construction function
     */
    public function __construct() {
        // Check if Woocomerce plugin is actived
        if ( ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
             return;
        }

我在创建帖子后更改了这行代码并将其替换为:

if(!is_plugin_active('woocommerce/woocommerce.php')) {
    return;
}

这会导致 PHP 致命错误:未捕获的错误:在 *** 中调用未定义的函数 is_plugin_active() 然后继续向我展示堆栈竞争。

尝试更新它:

if ( ! in_array( 'woocommerce/woocommerce.php', (array)apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
   return;
}

但是“class-sober-wc.php”中的 Wordpress 主题编辑器给了我错误:出了点问题。您的更改可能尚未保存。请再试一次。您还可能需要手动修复并通过 FTP 上传文件。

有什么解决办法吗?

编辑:

if ( ! in_array( 'woocommerce/woocommerce.php', (array)apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
   return;
}

成功了。我无法通过主 WP PHP 控制台进行部署,但等待一段时间后我能够部署。

【问题讨论】:

    标签: php database wordpress woocommerce wordpress-theming


    【解决方案1】:

    请在调用 is_plugin_active 之前包含 plugin.php 文件。

    include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
    
    if(!is_plugin_active('woocommerce/woocommerce.php')) { 
        return; 
    }
    

    当你包含 plugin.php 文件时,它不会抛出错误。因为is_plugin_active函数放在plugin.php文件中。

    快乐编码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 2019-12-16
      • 2014-06-19
      • 2017-08-26
      相关资源
      最近更新 更多