Как активировать плагин через PHPMyAdmin или FTP?
Я только что отключил плагин на своем сайте, и теперь появился пресловутый белый экран смерти. Я знаю, что сайт будет работать нормально, если я повторно активирую плагин.
Есть ли способ вручную активировать плагин через PHPMyAdmin или по FTP?

Я исправил это, зайдя в PHPMyAdmin в таблицу "Options" и затем в строку active_plugins
.
У меня там было сохранено следующее (отформатировано для удобства чтения):
a:10:{
i:0;s:49:"1and1-wordpress-wizard/1and1-wordpress-wizard.php";
i:1;s:29:"acf-repeater/acf-repeater.php";
i:2;s:30:"advanced-custom-fields/acf.php";
i:3;s:45:"limit-login-attempts/limit-login-attempts.php";
i:4;s:27:"redirection/redirection.php";
i:6;s:33:"w3-total-cache/w3-total-cache.php";
i:7;s:41:"wordpress-importer/wordpress-importer.php";
i:8;s:24:"wordpress-seo/wp-seo.php";
i:9;s:34:"wpml-string-translation/plugin.php";
i:10;s:38:"wpml-translation-management/plugin.php";
}
Я добавил новую строку (для отсутствующего плагина) и увеличил значение a:10
до a:11
, чтобы указать, что теперь в массиве 11 элементов:
a:11:{
i:0;s:49:"1and1-wordpress-wizard/1and1-wordpress-wizard.php";
i:1;s:29:"acf-repeater/acf-repeater.php";
i:2;s:30:"advanced-custom-fields/acf.php";
i:3;s:45:"limit-login-attempts/limit-login-attempts.php";
i:4;s:27:"redirection/redirection.php";
i:5;s:40:"sitepress-multilingual-cms/sitepress.php";
i:6;s:33:"w3-total-cache/w3-total-cache.php";
i:7;s:41:"wordpress-importer/wordpress-importer.php";
i:8;s:24:"wordpress-seo/wp-seo.php";
i:9;s:34:"wpml-string-translation/plugin.php";
i:10;s:38:"wpml-translation-management/plugin.php";
}
i:
обозначает номер элемента, и, согласно комментарию JHoffmann, похоже, что s:
указывает длину следующей строки.
Теперь сайт работает как прежде!

@JHoffmann Спасибо за это! Обновил свой ответ. Не подскажете, где вы это узнали? Есть ли где-то хороший ресурс, объясняющий такие вещи? Спасибо.

i
на самом деле означает целочисленное значение, s
означает строку, а число после s
— длину строки.

@PieterGoosen Тот же вопрос к вам: Где вы этому научились? Есть ли где-то ресурс с информацией?

Это сериализованные данные. У меня нет точного источника, но вы можете изучить тему сериализованных данных. Также можно посмотреть в сторону JSON, так как он чаще используется для сериализации данных

@DjangoReinhardt Как сказал Pieter Goosen, это сериализованные данные, сгенерированные php-функцией serialize. В WordPress также есть функция-обертка под названием maybe_serialize

Хотелось бы, чтобы стандартизировали имя файла плагина, в котором объявляется сам плагин. Я работаю над написанием скрипта, который будет автоматически скачивать, устанавливать и активировать плагины. Это последний недостающий элемент!

Прямое обновление этого значения в таблице базы данных привело к отключению всех моих плагинов. После этого мне пришлось снова включать все плагины через админку WordPress. Интересно, что именно вызывает отключение плагинов после обновления значения опции 'active_plugins'.

Подтверждаю, это сработало именно так, как описано. Интересно, что значения i:
не обязательно должны быть последовательными... У меня было a:40
, затем номера i
шли от 0 до 38, а последним было 40, без 39. Я изменил a:
на 41 и добавил свой новый плагин в конец с i:41
, и это сработало идеально.

//Используя этот код, вы можете активировать ваш плагин из файла functions.php
function activate_plugin_via_php() {
$active_plugins = get_option( 'active_plugins' );
array_push($active_plugins, 'unyson/unyson.php'); /* Здесь просто замените директорию плагина unyson и файл плагина */
update_option( 'active_plugins', $active_plugins );
}
add_action( 'init', 'activate_plugin_via_php' );

Если вы хотите активировать более одного плагина, просто повторите...

вы также можете добавить условие if(!in_array('unyson/unyson.php',$active_plugins)), чтобы убедиться, что плагин не добавляется более одного раза

Где можно найти файл functions.php
? Он находится в папке темы или в wp-includes
?

У меня есть ощущение, что хотя отмеченный как правильный ответ работает, именно этот должен быть помечен как верный, поскольку он полностью реализуется средствами WordPress, не требует прямого вмешательства в базу данных и в целом менее подвержен ошибкам. functions.php
находится в папке темы, и обычно вам следует создать дочернюю тему и редактировать файл там, так как изменения в родительском functions.php
будут потеряны при следующем обновлении темы.

Ещё один вариант решения, который может быть полезен другим в будущем. Вы также можете переместить папку плагина в папку Must Use (скорее всего, её потребуется создать, если она не использовалась ранее). Обычный путь к этой папке:
wp-content/mu-plugins
Плагины в этой папке будут запускаться всегда. Для получения дополнительной информации обратитесь к следующему ресурсу:
https://codex.wordpress.org/Must_Use_Plugins
Примечание: Единственное, что нужно учитывать — эти плагины загружаются раньше, чем плагины из обычной папки plugins. Также ознакомьтесь с ограничениями по ссылке выше, так как могут быть другие проблемы, которые могут помешать корректной работе вашего плагина.

Это спасло мне жизнь на 5-летнем сайте, созданном другим разработчиком, где были установлены 2 плагина, зависящие друг от друаг, и где я случайно отключил один из них.

Вы можете просто переименовать папку плагина, например:
"_aksimet"
чтобы деактивировать его,
а затем вернуть обратно в
"aksimet"
чтобы снова активировать (если он был активен)
Это можно сделать со всеми папками в каталоге "plugins".
В противном случае, зайдите в MySQL и посмотрите это пошаговое руководство, вкратце:
- MYSQL >
wp_options
- найдите запись
active_plugins
(оба шага можно выполнить с помощьюSELECT * FROM wp_options WHERE option_name = 'active_plugins';
) - затем запишите ваш плагин там, где записаны другие плагины (
i
- это индекс,s
- длина строки).
Надеюсь, это поможет

Спасибо. Я попробовал деактивировать, и оказалось, что код плагина слишком глубоко интегрирован по всему сайту. Мне нужно найти способ снова его активировать :(

Что ты имеешь в виду? Для реактивации просто переименуй его обратно. У тебя есть какие-то ошибки или что-то в этом роде?

Плагин был деактивирован через интерфейс WP Admin. После деактивации я больше не мог получить доступ к своему сайту. Не было ничего, что можно было бы "переименовать", так как я деактивировал его не через переименование по FTP.
