Иван Данилин
Чтобы удалить только основное изображение записи, можно воспользоваться таким сниппетом.
add_action( 'before_delete_post', 'wps_remove_attachment_with_post', 10 ); function wps_remove_attachment_with_post($post_id) { if(has_post_thumbnail( $post_id )) { $attachment_id = get_post_thumbnail_id( $post_id ); wp_delete_attachment($attachment_id, true); } }
Чтобы автоматически удалялись все прикрепленные изображения, модернизируем немного код, добавив в него цикл.
add_action( 'before_delete_post', function( $id ) { $attachments = get_attached_media( '', $id ); foreach ($attachments as $attachment) { wp_delete_attachment( $attachment->ID, 'true' ); } });
Код вставляем в файл functions.php активной темы.
Обратите внимание, изображения удаляются не после удаления записи, а после удаления записи из корзины.
Если нужно, чтобы удалялось все сразу, можно отключить корзину Вордпресс. Для этого нужно добавить в wp-config.php такую строчку:
define('EMPTY_TRASH_DAYS', 0);
Теперь изображения записи будут удаляться сразу после удаления самой записи, минуя корзину. Напомню, по умолчанию в Вордпресс записи в корзине хранятся 30 дней.
,
опубликовано 9 лет назад
А в какое место? Или без разницы?
Хотя корзина всё равно очистчается. Зрелище пугающее….но если не обращать внимание…то норм. Всяко лучше чем чистить в ручную. ….особенно если у Вас за 5000 постов т удалить нужно тыщу, другую….