Intereting Posts
Удалить учетные записи пользователей по умолчанию, логин и подписчики Отфильтруйте мои аргументы по почте 1-го письма Использование wp_localize_script внутри страницы шаблона для переноса var с php на js Не знаю, почему мое настраиваемое поле метаданных не сохраняется ол детей, а не уль детей 14 000 пользователей WordPress. Как они туда попали? Форматы сообщений «аудио» и «видео» отображаются только в index.php Удаление полей вложений из пользовательского загрузчика мультимедиа Как получить текущие действия? Отправьте запрос POST в WordPress, чтобы создать новую запись Каков правильный способ обновления параметров WordPress Что означает, что «означает, что ваша тема является тегом заголовка и нижнего колонтитула WordPress»? Вы можете отключить функцию почты в контактной форме 7 Шаблон пользовательской страницы 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 ), который следует за этими соглашениями, чтобы удалить специфический для темы параметр.

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