Функция activate_plugins() в WordPress: описание, возвращаемое значение, использование

## Функция activate_plugins() │ WP 2.6.0

### Описание

Функция activate_plugins() активирует указанные плагины в WordPress.

Если функция возвращает ошибку WP_Error, это не обязательно означает, что произошла ошибка с самим плагином. Это может значить, что путь к одному или нескольким файлам плагина неверный.

Важно: выполнение остановится, как только у одного из плагинов обнаружится ошибка.

Функция работает только в админ-панели. Если вам нужно использовать её на фронтенде, подключите файл с помощью:

require_once ABSPATH . '/wp-admin/includes/plugin.php';

Используется: activate_plugin().

### Возвращаемое значение

Функция возвращает:
- true — если выполнение прошло успешно.
- WP_Error — если возникли ошибки при активации пла��ина (например, неправильный путь к файлу плагина).

### Использование

Функция принимает следующие аргументы:

```php
activate_plugins( $plugins, $redirect, $network_wide, $silent );

  • $plugins (string/array, обязательный) — Один плагин (строка) или список плагинов (массив) для активации. Идентификатор выглядит как путь к файлу плагина относительно папки плагинов: democracy/democracy.php.

  • $redirect (string) — URL страницы, на которую перенаправить после успешной активации. По умолчанию: ''.

  • $network_wide (true/false) — Активировать ли плагин для всех сайтов в сети (только для многосайтового режима). По умолчанию: false.

  • $silent (true/false) — Тихая активация. Если true, плагин активируется без вызова хуков активации (activate_***), т.е. хуки активации не будут выполнены. По умолчанию: false.

Примеры использования

Пример 1: Активация указанного плагина

// Подключаем необходимый файл
// require_once ABSPATH . '/wp-admin/includes/plugin.php';

// Активация плагина
activate_plugins( 'democracy-poll/democracy.php' );

Изменения

  • С версии 2.6.0 — Функция была введена.

Код функции activate_plugins()

Функция activate_plugins выглядит так:

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 ); // Добавляем аргумент к URL
    }
    $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', __( 'Один из плагинов недействителен.' ), $errors );
}

return true; // Возвращаем true, если все прошло успешно

}

Связанные функции

  • deactivate_plugins() — Деактивирует плагины.
  • get_plugin_data() — Получает данные о плагине.
  • get_plugins() — Возвращает список всех плагинов.
  • is_plugin_active() — Проверяет, активен ли плагин.
  • plugin_basename() — Возвращает базовое имя плагина.
  • validate_plugin_requirements() — Проверяет требования плагина.
  • wp_get_active_and_valid_plugins() — Получает активные и действительные плагины.

Заключение

Функция activate_plugins() — это мощный инструмент для активирования плагинов в WordPress. Она позволяет управлять активацией плагинов, как в одиночном, так и в мн��госайтовом режиме, предоставляя гибкость при настройке вашего сайта.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *