Có nhiều anh em suy nghĩ rất đơn giản cho wordpress khi muốn xóa ảnh nào đó thì vào thẳng thư mục mã nguồn wp-content/uploads xóa đi là xong.
Với hệ thống static tĩnh thì cái đó chuẩn luôn nhưng với hệ thống như wordpress thì là một thiếu sót lớn.
khi bạn xóa ảnh bằng cách đó thì chỉ tạo ra một url 404 các dữ liệu meta các thông tin liên quan về ảnh đó đều vẫn được lưu trữ lại ở trong database, vì vậy cách xóa ảnh đó sẽ giảm tốc độ hiệu quả database của bạn.
Chính vì vấn đề đó nỡ đầu bạn không vào trang quản trị wordpress ấn xóa ảnh mà bạn đi xóa bằng cách trên đi thằng vào mã nguồn trong wp-content/uploads xóa luôn file muốn xóa. hoặc bạn mua mã nguồn hay đơn vị thiết kế website họ làm ăn ít kinh nghiệm họ muốn nhân bản website này qua website kia thì họ cũng nghĩ đơn giản xóa ảnh kia bằng cách xóa thứ mục uploads là xong. Nhưng database vẫn còn hiệu suất bị giảm xuống.
Cách sử lý tự động hóa hoàn toàn mình viết ra đoạn code này bạn có thể sử dụng giải quyết đề đó một cách đơn giản nhất.
Hướng dẫn tự động hóa xóa ảnh 404 WordPress
trước khi làm theo hướng dẫn vui lòng backup websitr trước khi thực hiện theo, để đề phòng rủi ro, nếu có điều kiện hãy giả lập website tại localhost để thực hiện cho an toàn nhất.
Bạn cho đoạn code này vào file functions.php
themes wordpress của bạn đang sử dụng.
function wptangtoc_delete_404_attachments(){ $url = get_home_url() . '/giatuandz.png'; $headers = @get_headers($url); $attachments = get_posts( array( 'post_type' => 'attachment', 'numberposts' => -1, 'fields' => 'ids' )); if ($attachments) { foreach ($attachments as $attachmentID){ $file_url = wp_get_attachment_url( $attachmentID); $file_headers = @get_headers($file_url); if($file_headers[0] == $headers[0]) { $check_tim_kiem_404_xac_thuc = strpos($headers[0], '404'); if ( $check_tim_kiem_404_xac_thuc ){ $deleted = wp_delete_attachment($attachmentID, true); } } } } } add_action('admin_init','wptangtoc_delete_404_attachments');
Bạn cho đoạn code trên vào file functions.php themes của bạn đang sử dụng xong rồi, thì bạn f5 tải reload lại trình duyệt ngay bên trong bảng điều khiểu wordpress chính tài khoản admin rồi đợi đoạn code kia nó thực thi (Thời gian thực thi sẽ lâu nếu như số lượng ảnh của bạn nhiều, nếu số lượng ảnh của bạn rất nhiều thì hãy mở cấu hình php.ini max_execution_time cao cao một chút, nếu số lượng ảnh của bạn siêu nhiều thì hãy triển khai qua wp cli sử dụng wp eval-file) khi đã thực thi xong rồi thì bạn xóa đoạn code ở bên trên đi cho nhẹ trang quản trị viên.
Thực thi cái này cũng khá nặng tài nguyên.
Khi nào cần thì tiếp tục làm. mình nghĩ là thường làm một lần là quá đủ cho một cuộc tình 😂😂 và nếu sau này có xóa thì trừ những cái bất khả kháng thì bạn xóa ảnh thì hãy vào media wordpress mà xóa nhé hoặc nếu bạn muốn nhân bản ra nhiều website khác muốn xóa toàn bộ ảnh tự động thì có thể sử dụng wp cli.
Yêu cầu web hosting bạn phải hỗ trợ được cài đặt wp cli trước đó. bạn cd vào thư mục mã nguồn của bạn rồi sử dụng lệnh này là để nó tự động xóa tự động một cách sạch sẽ.
wp post delete $(wp post list --post_type='attachment' --format=ids --allow-root) --force --allow-root
Lời kết:
Đơn giản vậy thôi hy vọng thủ thuật nhỏ này sẽ giúp website của bạn cải thiện tốc độ load website hơn.
Hung đã bình luận:
Trong WP Tăng Tốc
Những ảnh 404 trong bài Post sao xoá được luôn AD? Thank ạ
Mình đã dùng code trên nhưng ko được nè.