Xóa toàn bộ ảnh trên website WordPress là một thao tác quan trọng mà người quản trị web có thể thực hiện để giải phóng dung lượng máy chủ hoặc tổ chức lại thư viện phương tiện. Để thực hiện điều này an toàn và có kiểm soát, chúng ta sẽ tạo một chức năng xóa ảnh với nút bấm xác nhận bằng SweetAlert2, đảm bảo rằng người quản trị sẽ xác nhận trước khi hành động.

Tại sao nên xóa ảnh không cần thiết trong WordPress?
Việc tích lũy quá nhiều hình ảnh không sử dụng có thể làm tăng dung lượng bộ nhớ, làm chậm tốc độ tải trang và ảnh hưởng đến SEO của trang web. Việc xóa ảnh không cần thiết giúp bạn tối ưu hóa hiệu suất và cải thiện SEO.
Một số lưu ý khi sử dụng code xóa toàn bộ ảnh bằng SweetAlert2 trên website WordPress:
- Quyền hạn người dùng:
- Đảm bảo rằng chỉ quản trị viên có thể nhìn thấy và thực hiện thao tác xóa ảnh. Việc cho phép người dùng khác truy cập tính năng này có thể gây mất dữ liệu không mong muốn.
- Đoạn mã
current_user_can('administrator')
đảm bảo chỉ quản trị viên mới có thể thực hiện hành động này. Nếu cần thêm bảo mật, hãy kiểm tra kỹ quyền của người dùng.
- Xóa ảnh vĩnh viễn:
- Khi sử dụng
wp_delete_attachment($image->ID, true)
, ảnh sẽ bị xóa vĩnh viễn khỏi website mà không thể khôi phục từ thùng rác. Hãy cẩn thận khi sử dụng tính năng này và xác nhận kỹ trước khi thực hiện thao tác xóa. - Nếu bạn chỉ muốn di chuyển ảnh vào thùng rác, có thể bỏ tham số
true
trong hàmwp_delete_attachment
.
- Khi sử dụng
- Tối ưu hóa tốc độ xóa ảnh:
- Nếu website của bạn có rất nhiều ảnh, quá trình xóa toàn bộ có thể khiến trang bị quá tải hoặc làm chậm hiệu suất. Hãy cân nhắc việc chia nhỏ quá trình xóa để tránh gây gián đoạn trải nghiệm của người dùng. Bạn có thể sử dụng cron jobs hoặc thực hiện thao tác xóa theo lô (batch) để tối ưu hóa hiệu suất.
- Sao lưu trước khi thực hiện:
- Luôn sao lưu dữ liệu website trước khi thực hiện bất kỳ thao tác xóa nào. Việc mất toàn bộ ảnh có thể ảnh hưởng đến cấu trúc nội dung của trang web, nhất là khi các bài viết hay trang đang phụ thuộc vào những ảnh đó.
- Kiểm tra tương thích:
- Đảm bảo rằng theme và các plugin khác mà bạn đang sử dụng không bị xung đột với SweetAlert2 hoặc mã JavaScript AJAX trong code này. Nếu gặp vấn đề, hãy kiểm tra lại log lỗi hoặc sử dụng trình duyệt web để debug JavaScript.
- Sử dụng trong môi trường thử nghiệm:
- Trước khi áp dụng mã này lên website chính thức, hãy kiểm tra trước trong môi trường thử nghiệm hoặc staging site để đảm bảo không có lỗi phát sinh.
Một số lời khuyên khi sử dụng tính năng này:
- Tạo bản sao lưu ảnh định kỳ:
- Trước khi xóa toàn bộ ảnh, hãy đảm bảo rằng bạn có hệ thống sao lưu định kỳ để có thể khôi phục ảnh nếu cần thiết. Bạn có thể sử dụng các plugin sao lưu WordPress như UpdraftPlus hoặc BackWPup.
- Thực hiện xóa có chọn lọc:
- Thay vì xóa toàn bộ ảnh, bạn có thể cân nhắc việc xóa ảnh không sử dụng (ảnh không được liên kết đến bài viết hoặc trang nào). Điều này giúp giữ lại những ảnh quan trọng và tránh mất dữ liệu không mong muốn.
- Tối ưu hóa hình ảnh trước khi xóa:
- Trước khi quyết định xóa ảnh để tiết kiệm dung lượng, bạn có thể thử tối ưu hóa ảnh bằng các plugin như Smush hoặc EWWW Image Optimizer. Những plugin này có thể giảm dung lượng ảnh mà không làm giảm chất lượng hiển thị.
- Sử dụng mã nguồn mở, nhưng cẩn thận với bảo mật:
- Việc sử dụng SweetAlert2 là một cách hay để cải thiện trải nghiệm người dùng, nhưng bạn nên cập nhật thường xuyên phiên bản SweetAlert2 để tránh các lỗ hổng bảo mật. Ngoài ra, việc xử lý AJAX cũng cần được bảo vệ đúng cách để tránh bị khai thác từ bên ngoài.
- Cân nhắc xóa dữ liệu khác:
- Ngoài ảnh, website của bạn có thể chứa các tệp phương tiện khác như video, PDF hoặc các tệp tải lên khác. Hãy kiểm tra kỹ toàn bộ thư viện phương tiện trước khi xóa để đảm bảo bạn không bỏ sót những dữ liệu quan trọng.
Các bước thực hiện
1. Tạo nút xóa ảnh trong WordPress
Đầu tiên, chúng ta sẽ thêm một nút bấm “Xóa toàn bộ ảnh” vào trang quản trị WordPress. Đây là nơi người quản trị có thể thực hiện thao tác xóa tất cả hình ảnh. Nút bấm này sẽ kèm theo một cảnh báo xác nhận bằng SweetAlert2 trước khi thực hiện thao tác xóa.
Mở file functions.php
trong theme của bạn và thêm đoạn mã sau:
1 2 3 4 5 6 7 8 | <span style="color: #282828; font-size: 18px;">function add_delete_all_images_button() { // Hiển thị nút bấm chỉ cho quản trị viên if (current_user_can('administrator')) { echo '<button id="delete-all-images" class="button button-primary">Xóa toàn bộ ảnh</button>'; } } add_action('admin_footer', 'add_delete_all_images_button'); </span> |
2. Thêm xác nhận xóa bằng SweetAlert2
Sau khi có nút “Xóa toàn bộ ảnh”, ta sẽ sử dụng SweetAlert2 để hiển thị hộp thoại xác nhận trước khi thực hiện hành động xóa ảnh. Lợi ích khi sử dụng SweetAlert2 cho thông báo xác nhận bằng SweetAlert2 giúp tạo các hộp thoại xác nhận đẹp mắt và dễ sử dụng, cải thiện trải nghiệm người dùng. Hơn nữa, việc tích hợp AJAX vào quá trình xóa ảnh giúp trang web không bị gián đoạn và tối ưu hóa hiệu suất. Với SweetAlert2, bạn có thể:
- Xác nhận trước khi xóa ảnh, tránh thao tác nhầm lẫn.
- Hiển thị thông báo thành công sau khi ảnh đã được xóa.
- Tùy chỉnh hộp thoại với các tùy chọn linh hoạt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <span style="color: #282828; font-size: 18px;">function enqueue_sweetalert_for_delete() { // Đưa SweetAlert2 vào trang quản trị wp_enqueue_script('sweetalert2', 'https://cdn.jsdelivr.net/npm/sweetalert2@11', array(), null, true); ?> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', function() { document.getElementById('delete-all-images').addEventListener('click', function() { Swal.fire({ title: 'Bạn có chắc chắn muốn xóa toàn bộ ảnh?', text: "Hành động này không thể hoàn tác!", icon: 'warning', showCancelButton: true, confirmButtonText: 'Xóa', cancelButtonText: 'Hủy bỏ' }).then((result) => { if (result.isConfirmed) { // Gọi AJAX để thực hiện xóa jQuery.post(ajaxurl, { action: 'delete_all_images' }, function(response) { Swal.fire('Đã xóa!', 'Toàn bộ ảnh đã được xóa.', 'success'); }); } }); }); }); </script> <?php } add_action('admin_enqueue_scripts', 'enqueue_sweetalert_for_delete'); </span> |
3. Thực hiện hành động xóa ảnh bằng AJAX
Chúng ta sẽ sử dụng AJAX để xử lý yêu cầu xóa toàn bộ ảnh khi người quản trị xác nhận thao tác.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <span style="color: #282828; font-size: 18px;">function delete_all_images() { if (current_user_can('administrator')) { // Lấy tất cả các ID ảnh từ thư viện phương tiện $args = array( 'post_type' => 'attachment', 'post_status' => 'inherit', 'posts_per_page' => -1, ); $images = get_posts($args); // Xóa từng ảnh foreach ($images as $image) { wp_delete_attachment($image->ID, true); // Xóa vĩnh viễn } wp_send_json_success('Toàn bộ ảnh đã được xóa.'); } else { wp_send_json_error('Bạn không có quyền thực hiện thao tác này.'); } } add_action('wp_ajax_delete_all_images', 'delete_all_images'); </span> |
4. Cách hoạt động
- Bước 1: Một nút bấm “Xóa toàn bộ ảnh” được hiển thị trong trang quản trị, chỉ dành cho quản trị viên.
- Bước 2: Khi nhấn nút, hộp thoại xác nhận SweetAlert2 sẽ xuất hiện, yêu cầu xác nhận thao tác.
- Bước 3: Sau khi xác nhận, AJAX sẽ gửi yêu cầu tới server để xóa toàn bộ ảnh trong thư viện phương tiện.
Chúc các bạn thành công.
- Triply – Tour Booking WordPress Theme: Giao diện “chốt đơn” thần tốc cho dân du lịch!
- Chuyên Code Plugin Giá Rẻ Cho Website WordPress Tại Việt Nam
- Cách Xóa Toàn Bộ Ảnh Trong Website WordPress
- Code chức năng tạo lisences key wordpress bằng API trong admin
- Chương Trình Khuyến Mãi Mua Theme Tháng 01/2025