Intereting Posts
Как я могу создать RSS-канал на основе пользовательского WP_Query? Архив категорий в меню Не удается войти в wp-admin, поскольку перенаправление установлено на страницу, еще не опубликованную Обновление плагина не отражено в плагине WordPress Сортировка мусора по дате отправлено Многопользовательские роли администратора Любой компонент Facebook не работает на веб-сайте WordPress после обновления. Зачем? Помогите расщепить собственный архив типа сообщения в «прошлые» и «ближайшие», Код в теме functions.php быстрее, чем с плагином? WordPress CPT inexistent post загружает страницу блога Важные сообщения не отображаются сначала в пользовательском цикле Как обрабатывать запросы администратора и паролей от разработчиков плагинов? создать веб-сервис для Android-приложения, используя веб-сайт wordpress WordPress post next / prev не работает Как правильно вызывать настраиваемые даты полей в фильтр posts_where с использованием операторов SQL

Удалить таблицы базы данных при удалении темы?

Как я могу выполнять запросы БД при установке темы и удалении этих таблиц при удалении темы?

Solutions Collecting From Web of "Удалить таблицы базы данных при удалении темы?"

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

1. В то время как тема переключения:

Существует действие switch_theme которое запускается сразу после переключения темы. switch_theme запускается при изменении темы блога. В частности, он запускается после того, как тема была переключена, но перед следующим запросом. Разработчики тем должны использовать этот крючок, чтобы делать что-то, когда их тема отключена.

 <?php add_action('switch_theme', 'theme_deactivation_function'); ?> 

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

Удалить параметры темы после деактивации:

 add_action('switch_theme', 'mytheme_setup_options'); function mytheme_setup_options () { delete_option('mytheme_enable_features'); delete_option('mytheme_enable_catalog'); } 

switch_theme будет switch_theme только тогда, когда ваша тема деактивирована .

2. После темы переключения:

Тематические функции, прикрепленные к этому крючку, активируются только в теме (и / или дочерней теме). Чтобы сделать что-то, когда ваша тема деактивирована, используйте switch_theme .

Другими словами, after_setup_theme представляет точку, в которой WordPress устанавливает текущую тему, а не точку, в которой администратор активирует и / или настраивает текущую тему.

 <?php add_action("after_switch_theme", "mytheme_do_something"); ?> 

Добавьте параметры для своей темы и установите для них значения по умолчанию:

 add_action('after_switch_theme', 'mytheme_setup_options'); function mytheme_setup_options () { add_option('mytheme_enable_catalog', 0); add_option('mytheme_enable_features', 0); } 

after_switch_theme только при активации вашей темы.

Ссылка: switch_theme и after_switch_theme hook находятся в wp-includes / theme.php

Использование активации темы after_switch_theme

 add_action("after_switch_theme", "setup_db"); function setup_db(){ //run your create table statements } 

При деактивации темы используется switch_theme

 add_action('switch_theme', 'delete_db_things'); function delete_db_things(){ //run deletion statements }