Xóa tất cả hình ảnh đính kèm khi xóa bài viết WordPress

Khi bạn xóa một bài viết trên WordPress, hệ thống sẽ chỉ xóa nội dung bài viết mà không tự động xóa các hình ảnh đính kèm. Điều này có thể khiến thư viện phương tiện của bạn trở nên lộn xộn với những hình ảnh không còn sử dụng nữa. Nếu bạn muốn xóa luôn các hình ảnh liên quan khi xóa bài viết, bài viết này sẽ hướng dẫn bạn cách làm điều đó.

Xóa tất cả hình ảnh đính kèm khi xóa bài viết WordPress

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


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...