WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

Активация/деактивация плагина

Хуки для активации и деактивации плагина WordPress обеспечивают выполнение PHP действий, когда плагин активируется или деактивируется, а также есть хук для удаления плагина, но он немного отличается от текущих и о нем поговорим в другом разделе.

При активации как правило нужно запустить процедуру установки плагина, чтобы, например:

  • добавить опции (настройки) по умолчанию
  • установить таблицы базы данных
  • добавить правила ЧПУ
  • создать директории
  • и т.д.

При деактивации обычно очищают временные данные:

  • кеш во временных опциях
  • файлы во временных каталогах. Например, плагин страничного кэширования WP Super Cache при дезактивации удаляет все созданные файлы кэша.

Хук деактивации иногда путают с хуком деинсталляции (удаления), однако это совсем разные хуки, они работают по-разному и сфера их применения тоже разная. При удалении обычно удаляются все данные плагина, включая опции, таблицы в БД и т.д. О деинсталляции все данные удаляются, процедура включения хука другая о ней мы еще поговорим...

Чтобы включить хук активации, используйте функцию register_activation_hook() в основном файле плагина:

register_activation_hook( __FILE__, 'myplugin_activation' );

Для установки хука деактивации используйте похожую функцию register_deactivation_hook(), также в основном файле плагина:

register_deactivation_hook( __FILE__, 'myplugin_function_to_run' );

Первый параметр в каждой функции - это путь к основному файлу плагина - это файл с заголовками плагина.

Как правило, эти функции вызываются в основном файле плагина. Если функции помещаются в другой файл, то необходимо изменить первый параметр, указав в нем путь до основного файла плагина. Это можно сделать предварительно сохранив путь, например, в константу.

Пример активации плагина

Одним из распространенных случаев для хука активации - это обновление настроек ЧПУ WordPress с помощью flush_rewrite_rules(), когда плагин регистрирует произвольный тип записи. Это позволяет избавиться от неприятных ошибок 404. Давайте посмотрим на примере:

add_action( 'init', 'myplugin_setup_post_type' );
function myplugin_setup_post_type(){
	// Регистрируем тип записи "book"
	register_post_type('book', array(
		'public' => 'true'
	) );
}

register_activation_hook( __FILE__, 'myplugin_install' ); 
function myplugin_install(){
	// Запускаем функцию регистрации типа записи
	myplugin_setup_post_types();

	// Сбрасываем настройки ЧПУ, чтобы они пересоздались с новыми данными
	flush_rewrite_rules();
}

Если вы не знакомы с регистрацией произвольных типов записей, то прочитайте описание функции register_post_type().

Пример деактивации плагина

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

register_deactivation_hook( __FILE__, 'myplugin_deactivation' );
function myplugin_deactivation() {
	// Тип записи не регистрируется, а значит он автоматически удаляется - его не нужно удалять как-то еще.

	// Сбрасываем настройки ЧПУ, чтобы они пересоздались с новыми данными
	flush_rewrite_rules();
}

-

Больше примеров, как правильно использовать функции активации/деактивации смотрите в описании этих функций:

Функция удаления плагина

Кроме активации и деактивации, важным моментом является удаление плагина. Подключится к этому процессу можно через функцию

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

Eugene Kopich 100web2033.com
Creative sites for creative people ★ Digital marketing
Активация/деактивация плагина Комментариев нет

Здравствуйте, !

Ваш комментарий