Активировать плагин через PHPMyAdmin или FTP?

18

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

Есть ли способ вручную активировать плагин через PHPMyAdmin или через FTP?

Джанго Рейнхардт
источник
вероятно, будет полезно сообщить владельцу плагина, что это произошло. Возможно, плагину нужно немного поработать
Бенни

Ответы:

32

Я исправил это, пройдя через PHPMyAdmin в таблицу «Параметры», а затем строку 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:длина строки, которая следует.

Сайт теперь работает как раньше!

Джанго Рейнхардт
источник
2
sОбозначает строку и число следующее является длиной строки.
Джоффманн
@JHoffmann Спасибо за это! Обновил мой ответ. Можете ли вы сказать мне, где вы узнали это? Есть ли где-нибудь хороший ресурс, который объясняет такие вещи? Благодарю.
Джанго Рейнхардт
iна самом деле означает целочисленное значение, sозначает строку, а число рядом с ней sявляется длиной строки
Питер Гусен
1
Это сериализованные данные. У меня нет точного источника, но вы можете посмотреть сериализованные данные. Вы также можете посмотреть на JSON, так как это больше, где используются сериализованные данные
Питер Гусен,
1
@DjangoReinhardt Как сказал Питер Гусен, это сериализованные данные, которые генерируются функцией сериализации php . В WordPress также есть функция-обертка, которая называется Maybe_serialize
JHoffmann
12
//Using this code you can activate your plugin from the functions.php
    function activate_plugin_via_php() {
        $active_plugins = get_option( 'active_plugins' );
        array_push($active_plugins, 'unyson/unyson.php'); /* Here just replace unyson plugin directory and plugin file*/
        update_option( 'active_plugins', $active_plugins );    
    }
    add_action( 'init', 'activate_plugin_via_php' );
Анил Джадхав
источник
Если вы хотите активировать более одного плагина, просто повторите ...
Анил Джадхав
array_push ($ active_plugins, 'unyson / unyson.php');
Анил Джадхав
1
Вы также можете добавить if (! in_array ('unyson / unyson.php', $ active_plugins)), чтобы убедиться, что он не будет добавлен более одного раза
Pierre
3

Вы можете просто переименовать папку плагина, например:

"_aksimet"чтобы деактивировать его и затем снова "aksimet"активировать (если он был активен)

Вы можете сделать это со всеми папками «плагинов» вместе.

В противном случае перейдите на MySQL и кратко ознакомьтесь с этим пошаговым руководством :

  1. MYSQL> wp_options
  2. поиск active_pluginsзаписи (оба шага могут быть выполнены SELECT * FROM wp_options WHERE option_name = 'active_plugins';)
  3. и чем написать свой плагин там, как написаны другие плагины ( iэто индекс, sдля длины строки).

Надеюсь, это поможет

kybernaut.cz
источник
Благодарю. Я попытался деактивировать, и оказалось, что код для плагина слишком укоренился на всем сайте. Мне нужен способ активировать его :(
Джанго Рейнхардт
Что ты имеешь в виду? Для реактивации просто переименуйте его обратно. Есть ли у вас ошибки или так?
kybernaut.cz
Плагин был деактивирован через интерфейс WP Admin. Как только он был деактивирован, я больше не мог получить доступ к своему сайту. Переименовать было нечего, так как я не деактивировал его, переименовав по FTP.
Джанго Рейнхардт
Я обновил свой ответ, но это определенно странно. Какой плагин это был? Может быть, вы можете переключиться обратно на двадцать пятнадцать (переименовать вашу тему), активировать ее и проверить, что пошло не так и чем вернуться к вашей теме.
kybernaut.cz
2

Просто еще один ответ на другой подход, который может принести пользу кому-то еще в будущем. Вы также можете переместить папку плагинов в папку Must Use (которую вам, вероятно, понадобится создать, если она не использовалась ранее. Обычно это путь:

wp-content/mu-plugins

Плагины в этой папке всегда будут работать. Обратитесь к следующему для получения дополнительной информации:

https://codex.wordpress.org/Must_Use_Plugins

Примечание: единственное, что нужно учитывать, это то, что эти плагины загружаются раньше других в папке плагинов. Также обратите внимание на предостережения в приведенной выше ссылке, так как могут быть другие проблемы, которые могут помешать правильной работе вашего плагина.

TomC
источник