Làm cách nào để xóa tất cả các hình ảnh UNUSED khỏi thư mục tải lên của tôi?


20

Tôi đang cố gắng dọn sạch các thư mục tải lên của mình vì chúng hiện đang bắt đầu chiếm quá nhiều chỗ trên máy chủ của tôi.

Tôi đã cố gắng sử dụng các plugin để đạt được mục đích này như DNUI và Cleanup Images nhưng các plugin này không thể hoạt động được hoặc trong trường hợp của DNUI (đã được cập nhật gần đây và hoạt động) không đạt được kết quả chính xác mà tôi đang theo dõi. Điều này là do trang web của tôi sử dụng Wooc Commerce và một chủ đề cả hai đều sử dụng hình ảnh ở những nơi khác thay vì chỉ các bài đăng hoặc trang như tiêu đề, chân trang và phòng trưng bày. Có vẻ như WC sử dụng plugin Lightbox tích hợp của riêng nó có tên Pretty Photo, nơi mà các hình ảnh được chi tiết là "không sử dụng" bởi DNUI được gọi từ đó.

Tôi biết rằng đó là một chút của một câu hỏi nhưng tôi tự hỏi nếu có ai có thể chỉ cho tôi đi đúng hướng? Tôi không phải là nhà phát triển, vì vậy có lẽ thậm chí không nên đăng lên đây, nhưng tôi có thể giải quyết mọi thứ với thời gian và quyết tâm. Tôi đã thấy các tập lệnh trên trang web này đạt được kết quả tương tự như plugin DNUI nhưng không có gì có tính đến việc sử dụng hình ảnh khác (nếu nó thậm chí có thể?). Bất kì sự trợ giúp nào đều được đánh giá cao.


2
Tôi đã muốn làm điều tương tự, nhưng điều khiến tôi lo lắng là làm thế nào để xác định không sử dụng . Ví dụ, một tác giả có thể đã tải hình ảnh lên một bài đăng nháp, sau đó tạo một bài đăng nháp khác, dán nội dung và bài đăng đó được xuất bản. Điều này sẽ có nghĩa là các hình ảnh được gán cho bài dự thảo, không phải bài đăng được xuất bản. Có thể một tập lệnh xem qua tất cả các bài đăng và kiểm tra URL hình ảnh để xem hình ảnh nào đã được sử dụng và không. Hy vọng chúng tôi có một câu trả lời tốt.
Christine Cooper

Thật không may, định nghĩa "không sử dụng" của bạn càng phức tạp, bạn càng ít có khả năng tìm thấy giải pháp phù hợp cho nó. Bạn đang nói về bao nhiêu (về số lượng và kích thước)?
Rarst

Xin chào Rarst, cảm ơn bạn đã trả lời, trang web đã hoạt động được khoảng 5 năm nay và rất phụ thuộc vào hình ảnh, với khá nhiều thay đổi về chủ đề và plugin. Tôi tin rằng có đúng 1000 hình ảnh không được sử dụng. Và bởi vì số lượng thay đổi kích thước rất khác nhau. Tôi đã sử dụng Force Regenerate Thumbnails để thử và giảm số lượng này và điều này đã hoạt động ở một mức độ nào đó nhưng plugin này thường hết thời gian do số lượng. Nó cũng tăng CPU trên máy chủ của tôi lên mức không thể hoạt động nếu tôi kích hoạt nó.
G-Olly

Tôi nhận ra sự phức tạp của vấn đề và vì vậy tôi đã sử dụng thư viện phương tiện để thử và xác định và xóa những hình ảnh này. Thật không may, tôi đã phát hiện ra rằng nó cũng thường được liệt kê là không được sử dụng và ngược lại, vì đó là một quá trình chậm chạp khó khăn nhưng tôi đã bị dắt mũi vào đá mài.
G-Olly

1
Nếu tôi có thể đặt hai xu của mình vào, đối với một số loại trang web tôi nghĩ vấn đề có thể được giải quyết theo kinh nghiệm. Đối với các trang web này, webcrawlers đang truy cập mỗi trang trên trang web. Từ nhật ký máy chủ của bạn lấy danh sách các url của tất cả các trang đã truy cập. Phân tích các trang này bằng DOMDocument và nhận tất cả các phần tử <img> và srcs của chúng. Vấn đề với cách tiếp cận này là nếu Javascript tự động tạo href và srcs.

Câu trả lời:


4

Xóa hình ảnh bằng cách sử dụng plugin:

Bạn có thể sử dụng plugin này, nó sẽ tìm kiếm cơ sở dữ liệu của bạn và xem nếu hình ảnh được chèn vào bất kỳ bài đăng nào (trong nội dung, như hình ảnh đặc trưng, ​​trong bất kỳ trường tùy chỉnh, bất cứ nơi nào ...) hoặc làm nền ...

Nếu hình ảnh không được sử dụng ở bất cứ đâu, nó sẽ cung cấp cho bạn tùy chọn để xóa nó. Bạn sẽ nhận được danh sách tất cả các hình ảnh trên trang web của bạn không được sử dụng nữa, vì vậy bạn có thể xóa chúng một cách an toàn.

https://wordpress.org/plugins/dnui-delete-not- used-image-wordpress /

và điều này, vẫn hoạt động, thậm chí nó đã lỗi thời

https://wordpress.org/plugins/wordpress-uploaded-files-cleaner/


Xóa hình ảnh thủ công:

Bạn cũng có thể tìm kiếm thông qua thư viện phương tiện của mình để tìm hình ảnh không bị ràng buộc với bài viết và trang.

Đi đến thư viện phương tiện và nhấp vào "không gắn kết", nó sẽ hiển thị tất cả các hình ảnh có thể được hiển thị trên các phần khác của trang web của bạn hoặc không được sử dụng.


1
Vấn đề với hình ảnh không được đính kèm với bất kỳ bài đăng nào là chúng có thể được sử dụng ở một nơi khác - ví dụ: nếu bạn có trường tùy chỉnh sử dụng trình tải lên hình ảnh dựa trên trình tải lên Phương tiện gốc của Wordpress, tùy thuộc vào cách chủ đề được mã hóa, hình ảnh được tải lên không được đính kèm với bất kỳ bài đăng nào (trên cơ sở dữ liệu của bạn). Vẫn là một ý tưởng hợp lệ.
Bruno Monteiro

Tôi sẽ thứ hai @BrunoMonteiro ở đây. Hoàn toàn có thể có một hình ảnh không được đính kèm vào bài viết.
BODA82

3

Cron / tác vụ theo lịch trình và thu thập thông tin DB là bạn của bạn

Nó sẽ cần phải là một plugin, bạn có thể chỉ định cho nó một khoảng wp_cron, không khác gì so với đề xuất ở trên nhưng với việc thêm kiểm tra bất kỳ trường 'post_content' nào (bạn sẽ cần xác định các trường này, phụ thuộc vào môi trường WP của bạn) cho URI / URL của hình ảnh. Điều này có khả năng cực kỳ tốn thời gian / thuế đối với các quy trình của hệ thống - thực tế quy trình này chỉ cần chạy một lần một ngày hoặc một tuần - giả sử không có lý do kinh doanh / pháp lý nào khác để chạy thường xuyên hơn.

một cấu hình DB chủ-nô của nguồn cho phép quá trình này giảm đáng kể về tác hại của hiệu năng, nhưng điều đó vượt quá phạm vi của câu hỏi này tôi tin.



1

Bạn sẽ cần quét wp-content/uploadsthư mục của mình để tìm các tệp đã tải lên, sau đó cơ sở dữ liệu của bạn để tham chiếu đến các tệp đó và cuối cùng khớp chúng lại với nhau. Những gì không thể phù hợp sẽ được an toàn để loại bỏ.

Việc quét cơ sở dữ liệu là phần khó khăn. Hầu hết các tham chiếu tệp được lưu trữ bên trong Thư viện phương tiện mà bạn có thể truy cập bằng các hàm / API tiêu chuẩn của WordPress. Nhưng điều gì xảy ra với các tệp bị xóa khỏi Thư viện phương tiện nhưng vẫn được các bài đăng tham khảo? Hoặc các tệp mà các plugin khác liên kết đến theo những cách khác nhau?

Tôi đã thực hiện một số lượng đáng kể các thử nghiệm và từ những gì tôi thu thập được, tất cả các tham chiếu tệp đều được lưu trữ ở định dạng văn bản thuần túy (tức là chỉ một ô bảng bằng đường dẫn tệp hoặc URL), định dạng HTML (tức là nội dung của bài đăng), dưới dạng dữ liệu tuần tự hoặc cuối cùng là các đối tượng JSON. Bạn sẽ phải quét toàn bộ cơ sở dữ liệu và thử đoán định dạng nào được sử dụng trong mỗi ô. Tất nhiên, có thể có những cách kỳ lạ khác mà một số plugin đang sử dụng để giữ tham chiếu đến tệp của họ, nhưng những cách đó chỉ có thể được xử lý trong từng trường hợp cụ thể.

Do đó, tôi đã viết một plugin tự động thực hiện tất cả điều đó, vì tôi cần nó cho một số trang web của khách hàng của chúng tôi và đặt tên là Theia Upload Cleaner . Nó đã làm việc tốt với tôi, nhưng tất nhiên bạn nên luôn tạo một bản sao lưu trước khi thử một cái gì đó như thế này.


Cách tiếp cận tuyệt vời ... Tôi tự hỏi nếu bạn gặp phải bất kỳ vấn đề nào với nó với ngày càng nhiều nội dung / plugin / bài đăng được thêm vào theo thời gian ...
jj_

Có vấn đề ở đây và ở đó, vâng. Ví dụ: đối với một số plugin, bạn cần loại trừ một số bảng nhất định có thể làm mọi thứ chậm lại đáng kể. Chúng tôi cố gắng tự động loại trừ bởi các từ khóa nhất định, như bảng "nhật ký", nhưng tất nhiên nó không bắt được tất cả các trường hợp.
liviucmg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.