¿Cómo elimino todas las imágenes NO UTILIZADAS de mi directorio de uploads?

10 jun 2014, 18:26:29
Vistas: 77.5K
Votos: 24

Estoy tratando de limpiar mis carpetas de uploads ya que están empezando a ocupar demasiado espacio en mi servidor.

He intentado usar plugins para lograr este objetivo como DNUI y Cleanup Images, pero estos plugins son inoperables o en el caso de DNUI (que se ha actualizado recientemente y funciona) no logran exactamente los resultados que busco. Esto se debe a que mi sitio usa WooCommerce y un tema que utilizan imágenes en otros lugares además de solo entradas o páginas, como encabezados, pies de página y galerías. Parece que WC usa su propio plugin Lightbox incorporado llamado Pretty Photo, que es donde se llaman las imágenes que DNUI marca como "no utilizadas".

Sé que es bastante pedir, pero me pregunto si alguien podría orientarme en la dirección correcta. No soy desarrollador, así que probablemente ni siquiera debería estar publicando aquí, pero puedo resolver las cosas con tiempo y determinación. He visto scripts en este sitio que logran los mismos resultados que el plugin DNUI, pero nada que tenga en cuenta otros usos de imágenes (¿si es que es posible?). Cualquier ayuda sería muy apreciada.

7
Comentarios

Yo también he querido hacer lo mismo, pero lo que me preocupa es cómo definir qué es no utilizado. Por ejemplo, un autor puede haber subido imágenes a un borrador de publicación, luego crear otro borrador, pegar el contenido, y esa publicación es la que se publica. Esto significaría que las imágenes están asignadas al borrador, no a la publicación publicada. Tal vez un script que revise todas las publicaciones y verifique las URLs de las imágenes para ver cuáles se han usado y cuáles no. Espero que tengamos una buena respuesta.

Christine Cooper Christine Cooper
10 jun 2014 19:14:37

Desafortunadamente, cuanto más elaborada sea tu definición de "no utilizado", menos probable será que encuentres una solución adecuada. ¿De cuántas imágenes (en cantidad y tamaño) estás hablando?

Rarst Rarst
10 jun 2014 20:48:23

Hola Rarst, gracias por responder. El sitio ha estado activo durante unos 5 años y depende mucho de imágenes, con bastantes cambios de temas y plugins. Creo que hay literalmente miles de imágenes no utilizadas. Y debido a la cantidad de cambios, los tamaños varían enormemente. Ya he usado Force Regenerate Thumbnails para intentar reducir este número y ha funcionado hasta cierto punto, pero este plugin a menudo se bloquea debido a la cantidad. También aumenta la CPU de mi servidor a un nivel inmanejable si lo dejo activado.

G-Olly G-Olly
11 jun 2014 11:44:55

Entiendo la complejidad del problema y por eso he estado usando la biblioteca de medios para intentar identificar y eliminar estas imágenes. Desafortunadamente, he encontrado que a menudo también las marca como usadas cuando no lo están y viceversa, por lo que es un proceso lento y laborioso, pero ya estoy trabajando en ello.

G-Olly G-Olly
11 jun 2014 12:06:12

Si puedo dar mi opinión, para algunos tipos de sitios web creo que el problema puede resolverse empíricamente. Para estos sitios, los rastreadores web visitan cada página. Desde el registro del servidor, obtén la lista de URLs de todas las páginas visitadas. Analiza estas páginas usando DOMDocument y obtén todos los elementos <img> y sus src. El problema con este enfoque es si JavaScript genera dinámicamente hrefs y srcs.

User User
15 ago 2014 15:44:24

Casi todos estos plugins no verifican las imágenes de ACF. Media Cleaner tiene una versión pro que sí verifica ACF.

chiterry27 chiterry27
16 oct 2019 20:43:16

Deberías probar el plugin Media Hygiene para WordPress. El plugin Media Hygiene elimina archivos multimedia no utilizados de la biblioteca de WordPress para liberar espacio, reducir el desorden y mejorar el rendimiento del servidor. Con funciones como eliminación masiva y escaneo profundo de carpetas, es una herramienta imprescindible para encontrar y eliminar imágenes y archivos multimedia no utilizados.

Enlace al plugin aquí https://mediahygiene.com

Deepak Lakhara Deepak Lakhara
21 jul 2023 13:21:18
Mostrar los 2 comentarios restantes
Todas las respuestas a la pregunta 5
2

Eliminar imágenes usando un plugin:

Puedes usar este plugin, el cual buscará en tu base de datos y verificará si la imagen está insertada en algún post (en el contenido, como imagen destacada, en cualquier campo personalizado, en cualquier lugar...) o como fondo...

Si la imagen no se usa en ningún lado, te dará la opción de eliminarla. Obtendrás una lista de todas las imágenes en tu sitio que ya no se usan, para que puedas eliminarlas de forma segura.

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

Y este también funciona, aunque está desactualizado

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


Eliminar imágenes manualmente:

También puedes buscar en tu biblioteca de medios las imágenes que no están adjuntas a posts o páginas.

Ve a la biblioteca de medios y haz clic en "no adjuntas". Mostrará todas las imágenes que pueden aparecer en otras partes de tu sitio o que no se usan.

15 ago 2014 10:32:21
Comentarios

El problema con las imágenes que no están adjuntas a ninguna publicación es que pueden usarse en otro lugar; por ejemplo, si tienes un campo personalizado que utiliza un cargador de imágenes basado en el cargador de medios nativo de WordPress, dependiendo de cómo esté codificado el tema, la imagen cargada allí no está adjunta a ninguna publicación (en tu base de datos). Aún así, es una idea válida.

Bruno Monteiro Bruno Monteiro
18 jun 2015 16:20:49

Voy a apoyar a @BrunoMonteiro aquí. Es completamente posible tener imágenes que no estén adjuntas a una publicación.

BODA82 BODA82
11 oct 2015 04:46:06
0

Tareas programadas (Cron) y un rastreo de la base de datos son tus aliados

Tendría que ser un plugin, incluso podrías asignarle un intervalo wp_cron, no muy diferente al sugerido anteriormente pero con la adición de verificar cualquier campo tipo 'post_content' (necesitarás identificarlos, dependiendo de tu entorno WordPress) en busca de la URI/URL de la imagen. Esto tiene el potencial de ser extremadamente lento/consumidor de recursos para los procesos del sistema - en la práctica este proceso solo necesitaría ejecutarse una vez al día o a la semana - asumiendo que no hay otras razones legales/empresariales para hacerlo con más frecuencia.

Una configuración de base de datos maestro-esclavo de la fuente permitiría que este proceso afecte mucho menos el rendimiento, pero eso va más allá del alcance de esta pregunta creo.

6 dic 2015 16:47:47
0

Probé el plugin Limpieza de Imágenes y es el mejor, aunque siempre es bueno hacer una copia de seguridad primero.

6 dic 2015 17:48:13
2

Necesitarías escanear tu carpeta wp-content/uploads en busca de archivos subidos, luego tu base de datos para encontrar referencias a esos archivos, y finalmente emparejarlos. Lo que no se pueda emparejar debería ser seguro de eliminar.

El escaneo de la base de datos es la parte complicada. La mayoría de las referencias a archivos se almacenan dentro de la Biblioteca Multimedia a la que puedes acceder usando las funciones/API estándar de WordPress. Pero ¿qué pasa con los archivos que se eliminan de la Biblioteca Multimedia pero que siguen siendo referenciados por publicaciones? ¿O archivos a los que otros plugins enlazan de diferentes maneras?

Realicé un número considerable de pruebas y según lo que observé, todas las referencias a archivos se almacenan ya sea en formato de texto plano (es decir, simplemente una celda de tabla igual a la ruta o URL del archivo), formato HTML (es decir, el contenido de una publicación), como datos serializados, o finalmente como objetos JSON. Tendrías que escanear toda la base de datos e intentar adivinar qué formato se usa dentro de cada celda. Por supuesto, podrían existir otras formas exóticas que algunos plugins usan para mantener referencias a sus archivos, pero esos solo se pueden manejar caso por caso.

En consecuencia, escribí un plugin que automáticamente hace todo eso, ya que lo necesitaba para algunos sitios web de nuestros clientes, y lo llamé Theia Upload Cleaner. Ha funcionado bien para mí, pero por supuesto siempre deberías hacer una copia de seguridad antes de intentar algo como esto.

23 mar 2016 20:19:10
Comentarios

Buena estrategia... me pregunto si has encontrado algún problema con ella a medida que se añade más contenido/plugins/entradas con el tiempo...

red-o-alf red-o-alf
13 jun 2018 11:24:46

Hay problemas aquí y allá, sí. Por ejemplo, para algunos plugins necesitas excluir ciertas tablas que de otra forma pueden ralentizar considerablemente el proceso. Intentamos excluir automáticamente por ciertas palabras clave, como tablas de "log", pero por supuesto no detecta todos los casos.

liviucmg liviucmg
13 jun 2018 17:21:39
0

El plugin Media Cleaner para WordPress es bastante bueno - https://wordpress.org/plugins/media-cleaner/

Me gusta porque tiene soporte para otros plugins como Advanced Custom Fields (ACF), Divi Builder, Visual Composer y Elementor. (Solo en la versión de pago)

21 dic 2019 23:53:50