Всегда ли удаление плагина возвращает WordPress в исходное состояние?


Каково время жизни плагина в развернутом экземпляре WordPress?

А именно:

  • изменяют ли плагины существующие файлы или они используют только определенные точки расширения в WordPress?
  • разрешено ли плагинам изменять схему базы данных (например, добавлять новые столбцы)?
  • как Wordpress гарантирует, что удаление плагина всегда оставляет WP в исходном состоянии? (Так ли это?)
Author: cjbj, 2010-08-16

3 answers

Краткий ответ:

  • Плагины не изменяют существующие файлы, они подключаются к WordPress через открытый API.
  • Плагины могут изменять схему базы данных.
  • Плагины не обязательно удалять полностью.

Крючки плагинов

Плагины подключаются к WordPress в определенной точке, отображаемой ядром WordPress.

Http://codex.wordpress.org/Plugin_API

В качестве примера функция get_option() считывает параметр сайта из базы данных. Прежде чем предпринять какие-либо реальные действия внутри этой функции, WordPress вызывает apply_filters( 'pre_option_' . $option, false ). При наличии опции foobar плагин может переопределить истинное значение этой опции следующим кодом:

function override_foobar( $unused ) {
    return 'My custom value.';
}
add_filter( 'pre_option_foobar', 'override_foobar' ); // add_filter(hook, function)

См. также http://adambrown.info/p/wp_hooks/.

Плагины, изменяющие базу данных

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

Это должно быть рассмотрено на основе каждого плагина.

Удаление плагинов

Функция deactivate_plugins() вызывает действие do_action( 'deactivate_' . trim( $plugin ) ). Плагин должен подключиться к этому действию, если при отключении плагина должны произойти определенные вещи. По моему опыту, немногие плагины выполняют большую очистку от деактивации, т. Е. помещение их настроек в холодное хранилище в в случае, если они снова активируются.

 15
Author: Annika Backstrom, 2010-08-16 12:54:42

Плагины в WordPress делают то, что говорит код. Чтобы конкретно ответить на ваши вопросы,

  1. Они не должны, но ничто не мешает им изменять основные файлы.
  2. Им разрешено полностью взаимодействовать с базой данных любым способом, который может использовать сам WordPress.
  3. WordPress не гарантирует, что удаление плагина не уничтожит всю установку. Если бы автор плагина установил функцию удаления, чтобы удалить все, это сделало бы это.

Таким образом, остается вопрос, что можно сделать, если автор плагина предаст ваше доверие и сделает что-то вредоносное для вашего сайта? Регулярное резервное копирование вашего каталога wp-контента, а также всей вашей базы данных - лучший способ гарантировать, что вы сможете восстановиться в случае, если что-то случится с вашим сайтом (например, потеря данных, хакерская атака, плохой плагин и т.д.).

 3
Author: John P Bloch, 2010-08-16 12:45:26

Прямой ответ: НЕТ

Плагины могут делать все, что вы можете делать с PHP-кодом..

 1
Author: User, 2010-08-16 18:34:17