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

26 авг. 2015 г., 18:47:24
Просмотры: 88.4K
Голосов: 25

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

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

1
Комментарии

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

User User
27 авг. 2015 г. 11:26:12
Все ответы на вопрос 4
10
42

Я исправил это, зайдя в 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: указывает длину следующей строки.

Теперь сайт работает как прежде!

26 авг. 2015 г. 19:32:38
Комментарии

s обозначает строку, а следующее за ним число — длину строки.

JHoffmann JHoffmann
26 авг. 2015 г. 19:37:20

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

Django Reinhardt Django Reinhardt
26 авг. 2015 г. 19:40:06

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

Pieter Goosen Pieter Goosen
27 авг. 2015 г. 11:25:46

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

Django Reinhardt Django Reinhardt
27 авг. 2015 г. 14:10:49

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

Pieter Goosen Pieter Goosen
27 авг. 2015 г. 14:18:13

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

JHoffmann JHoffmann
28 авг. 2015 г. 02:25:32

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

cpcdev cpcdev
7 мая 2016 г. 02:14:33

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

Marcos Buarque Marcos Buarque
26 сент. 2018 г. 16:24:32

Работает как часы. Спасибо, ребята.

Umar Niazi Umar Niazi
12 дек. 2020 г. 08:11:10

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

John Smith John Smith
25 февр. 2024 г. 06:40:07
Показать остальные 5 комментариев
5
19
//Используя этот код, вы можете активировать ваш плагин из файла 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' );
16 июл. 2016 г. 21:47:16
Комментарии

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

Anil Jadhav Anil Jadhav
16 июл. 2016 г. 21:49:49

array_push($active_plugins, 'unyson/unyson.php');

Anil Jadhav Anil Jadhav
16 июл. 2016 г. 21:49:56

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

Pierre Pierre
28 мая 2018 г. 14:00:12

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

Wesley Gonçalves Wesley Gonçalves
11 мая 2020 г. 06:06:49

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

John Smith John Smith
25 февр. 2024 г. 06:42:37
3

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

wp-content/mu-plugins

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

https://codex.wordpress.org/Must_Use_Plugins

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

1 июн. 2016 г. 10:04:12
Комментарии

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

Meloman Meloman
3 июл. 2020 г. 09:32:41

Ха-ха, рад слышать, что это сработало для вас! :)

TomC TomC
3 июл. 2020 г. 09:33:41

Очень хорошее резервное решение, спасибо за публикацию, я только что узнал что-то новое. :-)

Trisha Trisha
5 июл. 2022 г. 23:08:42
4

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

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

Это можно сделать со всеми папками в каталоге "plugins".

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

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

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

26 авг. 2015 г. 18:49:49
Комментарии

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

Django Reinhardt Django Reinhardt
26 авг. 2015 г. 18:57:15

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

Karolína Vyskočilová Karolína Vyskočilová
26 авг. 2015 г. 19:28:57

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

Django Reinhardt Django Reinhardt
26 авг. 2015 г. 19:33:28

Я обновил свой ответ, но это действительно странно. Какой это был плагин? Возможно, вы можете переключиться обратно на twentyfifteen (переименовав свою тему), активировать его и проверить, что пошло не так, а затем вернуться к своей текущей теме.

Karolína Vyskočilová Karolína Vyskočilová
27 авг. 2015 г. 11:20:34