WordPress отключить плагин через базу данных? - PullRequest
28 голосов
/ 12 апреля 2010

У меня есть скрипт WordPress, wp-supercache, который мне нужно отключить (поскольку он кэшируется из-за неприятной ошибки), однако из-за ошибки происходит сбой перенаправления wp-admin, что означает, что я не могу попасть в сайт для отключения плагина.

Любой совет? Я могу получить доступ к базе данных через cpanel.

Ответы [ 10 ]

27 голосов
/ 12 апреля 2010

Попробуйте переименовать папку плагина и посмотреть, исчезла ли ошибка (сначала сделайте резервную копию.) Если это не поможет, , вот решение , тогда.

20 голосов
/ 15 июля 2014

Чтобы отключить определенный плагин, вы должны удалить его из сериализованной строки, в которой хранится список всех плагинов - это установлено в столбце option_value таблицы wp_options, как описано @TimDurden. Конкретное изменение формата, которое вы должны сделать: взято бесстыдно из Интернета :

a:4:{
    i:0;s:19:"akismet/akismet.php";
    i:1;s:36:"google-sitemap-generator/sitemap.php";
    i:2;s:55:"google-syntax-highlighter/google_syntax_highlighter.php";
    i:3;s:29:"wp-swfobject/wp-swfobject.php";
}

Этот первый набор символов - a:4 - обозначает массив и его длину. Также обратите внимание, что каждая строка в списке плагинов имеет индекс. Итак:

  1. Уменьшить индекс (с 4 до 3 в данном случае)
  2. В каждой строке уменьшать число после i:
  3. Удалите конкретный плагин, который вы хотите отключить.

Обновите значение в БД, используя новую строку, созданную из этих шагов:

update wp_options set option_value=<new value> where option_id=<id of this option>

Обратите внимание, что имя вашей таблицы может не совпадать с wp_options - у вас может быть префикс для добавления.

14 голосов
/ 13 апреля 2010

Вам нужно только переименовать папку в / wp-content / plugins /, и плагин будет автоматически деактивирован. Как только он будет деактивирован, вы сможете войти в систему.

5 голосов
/ 21 июля 2017
  1. Резервная копия базы данных или просто таблица wp_options
  2. SELECT option_value ОТ wp_options WHERE option_name = 'active_plugins';

  3. Скопируйте выбранную строку (сериализованную строку) и вставьте в левую часть на https://serializededitor.com/
  4. Удалить строку, какой плагин вы хотите деактивировать
  5. Скопируйте сериализованную строку результата с правой стороны и обновите значение active_plugins.

    ОБНОВЛЕНИЕ wp_options SET option_value = 'THE_NEW_SERIALIZED_STRING' WHERE option_name = 'active_plugins' LIMIT 1;

2 голосов
/ 07 ноября 2015

Я написал небольшой exe-файл в .dot для исправления / удаления строки опций из базы данных.

  1. Скачать exe здесь
  2. Запуск на сервере MySQL

SELECT * FROM wp_options WHERE option_name = 'active_plugins';

  1. Вставьте результаты в текстовое поле, нажмите парс.
  2. Удалите ненужные.
  3. Щелкните по выводу, он скопирует вывод в буфер обмена
  4. заменить квадратные скобки внутри одинарных кавычек на выходные и запустить на сервере MySQL

ОБНОВЛЕНИЕ wp_options SET option_value = '[заменить внутри одинарных кавычек свой вывод' WHERE option_name = 'active_plugins';

  1. Нет гарантий ... Я не претендую на звание программиста

enter image description here

1 голос
/ 04 декабря 2016

Вам просто нужно изменить значения в записи "active_plugins" в базе данных. Вы можете найти процесс Здесь

1 голос
/ 13 ноября 2014

Другой способ сделать это - сделать резервную копию сайта, а затем просто переименовать папку плагина в / wp-content / plugins / на другое имя. Так что плагин будет отключен. Я не предпочитаю удалять папку плагинов, так как это может вызвать ошибки. После того, как шаг сделан, войдите в свой WordPress сайт и удалите плагин оттуда

1 голос
/ 07 ноября 2013

Чтобы отключить все плагины Wordpress на вашем сайте:

  1. Войдите в свой инструмент управления базами данных (например, PHPMyAdmin)
  2. Выполнить следующий запрос:

UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

0 голосов
/ 16 июля 2016

С помощью этого кода вы можете активировать свой плагин из 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' );
0 голосов
/ 19 августа 2014

Поздний ответ, но отвечающий, так как это будет кому-то полезно в будущем. Все плагины хранятся в таблице wp_options в последовательном порядке. Вы можете редактировать это поле вручную. Или, если вы десериализуете его с помощью функции, как в php с использованием unserialize (), вы получите массив просто измените его, чтобы удалить плагин, который вы хотите удалить из этого массива, и сериализуйте его обратно. затем обновите таблицу. Это оно. Если вы хотите узнать больше об этом здесь хорошая статья. Это все объясняет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...