Xóa Tất Cả Hình Ảnh Đính Kèm Khi Xóa Bài Viết
Để tự động xóa các hình ảnh đính kèm khi bài viết bị xóa, bạn chỉ cần thêm đoạn mã sau vào functions.php.
/**
* Delete Images with Posts
*/
add_action( 'before_delete_post', 'wps_remove_attachment_with_post', 10 );
function wps_remove_attachment_with_post( $post_id ) {
/** @var WP_Post[] $images */
$images = get_attached_media( 'image', $post_id );
foreach ( $images as $image ) {
wp_delete_attachment( $image->ID, true );
}
}
Giải Thích Mã:
-
Hàm
before_delete_post: Đây là hook được WordPress gọi trước khi một bài viết bị xóa. Bạn sử dụng hook này để chạy chức năng xóa hình ảnh. -
get_attached_media( 'image', $post_id ): Hàm này sẽ lấy tất cả các hình ảnh đính kèm với bài viết có ID$post_id. -
wp_delete_attachment( $image->ID, true ): Hàm này sẽ xóa hình ảnh khỏi thư viện và xóa vĩnh viễn dữ liệu hình ảnh đó khỏi server.
Kết Quả:
Kể từ khi bạn thêm đoạn mã trên, mỗi khi bạn xóa một bài viết, tất cả hình ảnh đính kèm sẽ bị xóa theo cùng với bài viết đó. Điều này giúp giữ cho thư viện phương tiện của bạn luôn gọn gàng và không bị tràn ngập các tệp không cần thiết.
Chúc các bạn thành công và quản lý website WordPress hiệu quả hơn!
Bình luận