Если вы пользуетесь вопрдпрессом, то замечали что при удалении поста картинки прикрепленную к посту не удаляются. Это не проблема если этот Вордпресс используется для ведения вашего личного блога. Тогда и посты то вы редко удаляете. А вот если блог наполняется пользовательским контентом, то эта фишка вордпресса реально проблема.

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

Мне вообще не понятно, почему разработчики вордпресса не сделали отдельную кнопочку для удаления поста вместе с вложениями. Или галочку где-нибудь в настройках. Но это недоразумение очень легко поправить.

Нужно в файл functions.php вашей темы добавить такой код?

 


Обратите внимание, что WordPress по умолчанию записи не удаляет, а помещает в корзину. В этом случае с помощью кода выше картинки будут удаляться только тогда, когда пост будет удален и из корзины. А когда пост перемещен в корзину — картинки не удаляются. И это разумное поведение. Ведь в корзину пост помещают чтобы при необходимости восстановить его, а если мы удалим вложения, то и какой смысл восстанавливать пост с битыми картинками. Однако, если хочется удалять вложения сразу при перемещении поста в корзину, то просто замените before_delete_post на wp_trash_post
.
Код проверен на ВП > 3.9. Он удаляет только вложенные к посту картинки. Картинки вставленные в пост иначе он не трогает.