Mặc định WordPress khi xoá bài đăng sẽ không xoá hình ảnh “được đính kèm” với bài đăng đó. Function dưới đây sẽ giúp bạn dễ dàng xoá các hình ảnh khi xoá bài đăng.
Chức năng và Lưu ý:
– Sẽ xoá hình ảnh nhưng không xoá hình ảnh đó nếu được gán ở bài đăng khác.
– Nếu một hình ảnh được tải lên trong bài đăng A và được gán thêm vào bài đăng B thì khi xoá Bài đăng A sẽ không xoá ảnh được gán cho bài đăng B. Nhưng sẽ không hiển thị hình ảnh đó trong Media của WP vì lý do Media chỉ hiển thị hình ảnh được gán cho bài đăng cụ thể khi nó tải lên lần đầu.
– Áp dụng cho tất cả các loại bài đăng bao gồm Post, Product, Custom Post Type …
Để sử dụng các bạn copy và truy cập vào: Giao diện (Themes) / Theme File Editor / Functions.php
function realdev_clean_media( $post_id ) {
$media = get_attached_media( '', $post_id );
foreach ( $media as $attachment ) {
global $wpdb;
$posts = "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE '%wp-image-{$attachment->ID}%' AND ID != {$post_id}";
$used_posts = $wpdb->get_var( $posts );
if ( $used_posts == 0 ) {
wp_delete_attachment( $attachment->ID, true );
}
}
}
add_action( 'before_delete_post', 'realdev_clean_media' );
}
Trên đây là cách xoá hình ảnh khi xoá bài đăng trên WordPress. Chúc các bạn thành công!