WordPress中文文档:activate_plugins()函数

功能

激活多个插件。

格式

activate_plugins( string|string[] $plugins, string $redirect = '', bool $network_wide = false, bool $silent = false )

描述

如果 activate_plugins() 函数返回了 WP_Error 错误,这并不意味着其中一个插件本身出错了,而是意味着一个或者多个插件的文件路径是无效的。

只要有一个插件的启动出现错误,activate_plugins() 的动作就会立刻终止。

参数

$plugins
(string|string[]) (必须参数) 要启动的一个插件或多个插件组成的列表。

$redirect
(string) (可选参数) 激活成功之后重定向到的页面。
默认值:''

$network_wide
(bool) (可选参数) 是否激活多站点模式下位于网络上所有站点中的相关插件。
默认值:false

$silent
(bool) (可选参数) 阻止调用激活钩子。
默认值:false

返回值

(bool|WP_Error) 如果全部激活完成则返回 `True`, 如果激活过程中出现错误则返回 `WP_Error`.

源码

代码所在文件:

wp-admin/includes/plugin.php

相关代码片段:

function activate_plugins( $plugins, $redirect = '', $network_wide = false, $silent = false ) {
    if ( ! is_array( $plugins ) ) {
        $plugins = array( $plugins );
    }

    $errors = array();
    foreach ( $plugins as $plugin ) {
        if ( ! empty( $redirect ) ) {
            $redirect = add_query_arg( 'plugin', $plugin, $redirect );
        }
        $result = activate_plugin( $plugin, $redirect, $network_wide, $silent );
        if ( is_wp_error( $result ) ) {
            $errors[ $plugin ] = $result;
        }
    }

    if ( ! empty( $errors ) ) {
        return new WP_Error( 'plugins_invalid', __( 'One of the plugins is invalid.' ), $errors );
    }

    return true;
}

变更日志

  1. 自 WordPress 2.6.0 开始引入。

参考链接:https://developer.wordpress.org/reference/functions/activate_plugins/