Не нашёл такой функции. Активировать плагин можно примерно так:
$plugin = 'akismet/akismet.php';
include_once(WP_PLUGIN_DIR . '/' . $plugin);
do_action("activate_$plugin");
Однако необходимость программной активации встречается довольно редко. Как звучит задача полностью?
Спасибо за ответ, но пока до конца не вник…
Вы уверены относительно правильности синтаксиса последней строчки?
do_action("activate_<strong>$plugin</strong>");
Есть хук, который можно проинклудить и активировать плагин:
if(!function_exists(activate_plugin))
include_once(ABSPATH.'wp-admin/includes/plugin.php');
activate_plugin(WP_PLUGIN_DIR.'/'.$pluginName);
Однако, ваше решение видится более элегантным, единственное что мне непонятно, это синтаксис последней строки. Поясните пожалуйста.
Полностью задача заключается в закачке обновления плагина с последующей активацией в автономном режиме.
Я ошибся — действительно, эта функция есть в wp-admin/includes/plugin.php
. Значит, можно воспользоваться вашим вариантом. По поводу синтаксиса: внутри строк, заключённых в двойные кавычки, обрабатываются переменные.
В WordPress уже есть возможность автоматического обновления плагинов одним кликом. Или тут что-то другое?
Под синтаксисом я подразумевал синтаксис самого WordPress-а. Конечная строка ‘activate_akismet/akismet.php’ поставила меня в тупик. WordPress понимает такие директивы?
В моём случае обновление должно происходить без клика.
К сожалению предложенный вами вариант не работает.
Да, понимает — см. «Administrative_Actions». Оказалось, что это действие не осуществляет саму активацию, а только сопутствует ей. Извините, если ввёл в заблуждение.