Intereting Posts
Как я могу исключить все комментарии в модерации? пользовательские возможности типа сообщения – должны быть ОЧЕНЬ безопасными добавление моих сообщений (сообщений автора) в меню get_page_templates возвращают только шаблоны с "home" в имени файла Как вручную загружать файлы через FTP wp_update_post ведет себя по-разному для разных пользователей Целесообразно использовать $ post-> comment_count вместо get_comments_number ($ post_id) Редактирование вывода Customer- / Product-AJAX search @ Admin -> Добавить заказ изменение шаблона пользовательского типа сообщения между предварительным просмотром и публикацией Как создать мета-окно для дат? Неправильный порядок подстраницы Пользовательский тип сообщения не работает Как создать пользовательские пользовательские страницы с конкретным пользователем? Обновить до старой версии WordPress от администратора? Если страница является таксономии, то X, если это термин, делает Y

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

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

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 }