@Dobr

Как убрать картинки постов Wordpress по истечению времени?

Привет!
Подскажите, пожалуйста, наиболее оптимальный путь автоматического удаления (или скрытия) всех изображений записи через, например, 10 дней после публикации этой записи.
Спасибо заранее
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 2
anatoly_kulikov
@anatoly_kulikov
Помог ответ? Отметь решением!
В независимости от того, что нужно сделать - скрыть или удалить - вам нужно сделать крон-задачу на выполнение операции.

Причем, можно сделать просто сделать задачу, которая по истечении х дней будет собирать все посты и создавать магию, или же сделать отдельную registry-табличку для отслеживания.

Выглядеть это может следующим образом:
- при публикации поста мы добавляем в registry-табличку id поста, дату для очистки от картинок и статус (очищено или нет)
- создаем крон-задачу, которая раз в день, допустим, собирает все посты из registry-страницы и передает по очереди в обработчик
- отмечает в таблице пост как обработанный

Удаление картинок из поста скорее всего проще через regex, где все картинки нужно заменить на пустую строку. Причем, если нужно просто скрыть, то в целом для картинки можно указать класс типа «hidden».

Если вам нужно удалить картинку физически, то используйте функцию wp_delete_attachment.
Ответ написан
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Не обязательно делать крон, можно на хуке wp_head или template_redirect проверять is_single() и get_the_date(), в зависимости от этого изменять post_status, удалять изображение wp_delete_attachment() или даже удалить всю запись wp_delete_post() с 301 редиректом
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы