Code xoá ảnh trong Media không xử dụng đến !
Uncategorized

Code xoá ảnh trong Media không xử dụng đến !

Thẩm định nội dung
Thẩm định nội dung

Nội dung trên nguyenthaimmo.com được trực tiếp triển khai, kiểm thử và biên soạn bởi NguyenThaiMMO – người có nhiều năm kinh nghiệm thực chiến trong WordPress, SEO kỹ thuật, Automation, MMO & Affiliate.

Mỗi bài viết đều được thẩm định dựa trên trải nghiệm thực tế, ưu tiên hướng dẫn từng bước, chỉ ra lỗi thường gặp và giải pháp cụ thể, nhằm giúp người đọc áp dụng được ngay, hạn chế rủi ro và tối ưu hiệu quả lâu dài.

Code xoá ảnh trong Media không xử dụng đến !

Có rất nhiều plugin có thể đáp ứng cái này nhưng code này phát sinh khi khách bên nguyenthaimmo cần nên mình chia sẻ, nếu hữu ích hãy để cho mình 1 bình luận nhé !

  • Chú thích: code này sẽ chèn trong file functions.php của theme, nó sẽ giúp xoá hình không sử dụng khi bạn tải lên và xoá bài viết mà Media vẫn còn trong Media thì code này sẽ giải quyết bạn chèn vào 5 đến 10 phút xoá đi là được !
function delete_unused_images() {
    global $wpdb;

    // Lấy danh sách tất cả các ID của các bài viết và trang
    $post_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts}");

    // Lấy danh sách tất cả các ID của các tệp đính kèm trong các bài viết và trang
    $attachment_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");

    // Loại bỏ các ID của tệp đính kèm từ danh sách ID bài viết và trang
    $post_ids = array_diff($post_ids, $attachment_ids);

    // Lấy danh sách tất cả các tệp đính kèm không được sử dụng
    $unused_attachment_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment' AND post_parent NOT IN (" . implode(',', $post_ids) . ")");

    // Xoá các tệp đính kèm không được sử dụng
    foreach ($unused_attachment_ids as $attachment_id) {
        wp_delete_attachment($attachment_id, true);
    }
}

// Chạy hàm khi trang web được tải
add_action('wp_loaded', 'delete_unused_images');
  • Code dưới này cùng chức năng nhưng sẽ để luôn nhé ! Code xoá bài viết sẽ xoá luôn Media của bài viết đó
function delete_attachments_with_post($post_id) {
    // Kiểm tra xem có phải là bài viết không
    if (get_post_type($post_id) == 'post') {
        // Lấy danh sách tất cả các tệp đính kèm của bài viết
        $attachments = get_attached_media('', $post_id);

        // Xoá từng tệp đính kèm
        foreach ($attachments as $attachment) {
            wp_delete_attachment($attachment->ID, true);
        }
    }
}

// Chạy hàm trước khi bài viết được xoá
add_action('before_delete_post', 'delete_attachments_with_post');

 

Đánh giá bài viết

5/5 - (58 bình chọn)

Đánh giá độ hữu ích của bài viết

Tag Website:
Theo dõi
Thông báo của
guest
0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x