Как в WordPress вместе с записью удалить все ее изображения?

Общеизвестно, что при удалении записи WordPress, добавленные к ней изображения, остаются. Их приходится удалять вручную, используя Медиабиблиотеку (раздел в админ-панели Медиафайлы -> Библиотека). Но если одновременно будут удалены несколько постов, то картинки, относящиеся к ним, будет довольно тяжело найти.

Как в WordPress вместе с записью удалить все ее изображения?

Для решения задачи будем использовать специальный PHP-код, который необходимо будет добавить в файл functions.php Вашей активной WordPress-темы.

Если Вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.

Итак, в указанный файл нужно добавить следующие строки на языке PHP. Так, чтобы автоматически удалять только основное изображение записи, следует использовать следующий код:

function wpschool_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', 'wpschool_remove_attachment_with_post', 10 );

Для удаления всех изображений поста служат следующие сроки:

add_action( 'before_delete_post', function( $id ) {
    $attachments = get_attached_media( '', $id );
    foreach ( $attachments as $attachment ) {
        wp_delete_attachment( $attachment->ID, 'true' );
    }
});

Следует отметить, что в обоих случаях изображения будут удалены только после очистки корзины. Если Вы хотите немедленного их удаления, то для этого необходимо в самом конце основного конфигурационного файла wp-config.php добавить строки

// Отключение корзины
define('EMPTY_TRASH_DAYS', 0);

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

Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров
Привет! Меня зовут Михаил Петров. Я копирайтер и занимаюсь этим с 2013 года. Скрупулезность и ответственность - моя фишка! Не могу делать как попало и добиваюсь, чтоб заказчик сказал минимум “неплохо”. За все время своей работы пришлось написать и отредактировать немало разной “текстовухи”, включая SEO-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.
Задать вопрос