Intereting Posts
Измените woocommerce весовой вес продукта на основе своей категории продукта или тегов? Использовать дату в URL-адресе пользовательского типа сообщения Как искать внутри определенных таксономий в WordPress Как вводить контент после <body> Храните текстовое сообщение WordPress в разделе «wp_posts» «Таблица базы данных Есть ли какой-либо инструмент для поиска строк кодов, ответственных за создание интерфейсных HTML-элементов? Создание пользовательских ролей пользователя link wordpress и stackoverflow Как отобразить сообщение из текущей таксономии на странице архива? Плагины, которые не отображаются в разделе панели инструментов-> плагинов Функция wp_update_post работает с существующими сообщениями, но не с новыми сообщениями cookie jQuery не работает должным образом в wordpress SEO – Обновление имени файла мультимедиа PHP – перенаправление https на http и www на не-www Как перенести веб-сайт на основе пользовательской базы данных в WordPress?

Удалить настройки, если тема удалена?

Можно ли выполнить действие только в том случае, если тема удалена (не деактивирована) из каталога тем?

Например, я хочу удалить настройки темы из базы данных после удаления темы. Поэтому я хочу запустить это, когда тема будет удалена:

delete_option( 'mysettings' ); 

Solutions Collecting From Web of "Удалить настройки, если тема удалена?"

Как видно из других ответов, нет встроенного способа сделать это. Не существует API-интерфейса для удаления темы, аналогичного API-интерфейсу для плагинов . Фактически существует давний билет, чтобы добавить эту функцию в ядро ​​WordPress, чтобы темы могли удаляться самостоятельно. Консенсус от ведущих разработчиков, похоже, заключается в том, что это не функция, которая хочет иметь темы. Я не знаю, в чем причина. Может быть, вы можете помочь объяснить им преимущества этого.

Единственный крюк действия / фильтра, который я нашел в этой части кода, находится в

do_action( 'delete_site_transient_' . $transient, $transient );

Он называется внутри delete_site_transient('update_themes'); который вызывается в function delete_theme($stylesheet, $redirect = '') после успешного удаления темы.

Поэтому я бы сделал это, добавив свое действие к delete_site_transient_update_themes . В этом действии вы можете проверить некоторые условия (название темы), а затем удалить некоторые параметры.

Конечно, этот код вызывается, когда тема неактивна и после удаления ее каталога с сервера. Поэтому вы не можете добавить это действие внутри этой темы (было бы хорошо), и вы должны поместить его в какой-то плагин. (Я не уверен, что если установить дополнительный плагин, чтобы убедиться, что параметры темы удалены после удаления этой темы – отличная идея).

Я не уверен, понимаю ли я этот вопрос, поэтому сначала перефразирую его, но если да, то я сделал обходной путь для этого.

Понимая вопрос как:

Если тема отключена, параметры сайта сохраняются, поэтому, если они активированы снова, их не нужно вводить повторно, но при их удалении они полностью удаляются.

Это не полный ответ, потому что он говорит о отключении плагина и удаленных крючков вместо темы, но при условии, что тема имеет что-то подобное, я сделал это:

  1. В случае деактивации я переместил настройки параметров в небольшую резервную таблицу.
  2. Включите, проверьте, существует ли таблица резервного копирования, и если да, восстановите параметры из резервной копии и отбросьте таблицу (или просто проверьте строку и удалите строку). Удостоверьтесь, что вы назвали таблицу так, чтобы она была четко привязана к теме, подобной вышеупомянутым заметкам о woocommerce. И всегда удаляйте настройки после их использования, чтобы обеспечить самые последние настройки.
  3. При удалении ведут себя нормально (что постоянно устраняет настройки параметров).

Таким образом, пользователю не нужно повторять настройки параметров, если они должны деактивироваться, чтобы проверить конфликты плагинов и тем (как я недавно имел дело с темой Woo).

это действительно полностью зависит от автора темы, я думаю … некоторые делают лучше сбор мусора, чем другие. Я только что прошел полностью через мою таблицу wp_options, пытаясь найти причину … и при этом я нашел TON параметров темы для тем, давно удаленных и удаленных с сервера. К счастью, те, у кого больше всего вариантов, которые я хотел избавиться и очистить таблицу, автор поставил хороший префикс на все «свои» файлы, чтобы их можно было легко идентифицировать. Зайдите в свой стол и посмотрите, подходит ли это вам. Если это так, вы можете написать соответствующий запрос.

Кроме того, переходные процессы и site_transients должны удаляться после определенного времени … это не всегда так. Я удалил страницы и страницы этих вручную.

Я не знаю, отвечает ли это на вопрос. Похоже, вы хотите сгенерировать функцию php … Я бы выполнил запрос mySql и сделаю так. (с резервным копированием db сначала, конечно!)

Очень сложно узнать, какой вариант был создан настройками вашей темы.

Но если вы следуете за утверждением имени, например, Woocommerce (все параметры, созданные Woocomerce, имеют имя типа woocommerce_* и woocommerce как имя каталога плагина). Это упрощает поиск и удаление параметров темы.

Таким образом, для параметров темы вы можете найти это:

Если текущая тема называется Deepfocus, это имя опции должно быть похоже на deepfocus_ *

Если текущая тема – Twenty Twelve, это имя опции должно быть похоже на двадцатьtwelve_ *

Примечание . Я создал простой плагин ( WP-Delete-Theme-Option ), который следует за этими соглашениями, чтобы удалить специфический для темы параметр.

Плагин генерирует имя параметра из имени каталога темы.