web-dev-qa-db-fra.com

Comment puis-je supprimer toutes les images non utilisées de mon répertoire de téléchargement?

J'essaie de nettoyer mes dossiers de téléchargement car ils commencent à prendre trop de place sur mon serveur.

J'ai essayé d'utiliser des plugins pour atteindre cet objectif tels que DNUI et Cleanup Images, mais ces plugins sont soit inutilisables, soit dans le cas de DNUI (qui a été mis à jour récemment et qui fonctionne) n'obtiennent pas les résultats exacts que je recherche. En effet, mon site utilise Woocommerce et un thème qui utilise à la fois des images situées dans d’autres lieux plutôt que de simples posts ou des pages telles que des en-têtes, des pieds de page et des galeries. Il semble que WC utilise son propre plug-in Lightbox appelé Pretty Photo, qui est à partir duquel les images détaillées comme "non utilisées" par DNUI sont appelées.

Je sais que c'est un peu une demande, mais je me demande si quelqu'un pourrait me diriger dans la bonne direction? Je ne suis pas un développeur, je ne devrais donc probablement pas écrire ici, mais je peux régler le problème avec du temps et de la détermination. J'ai vu des scripts sur ce site qui donnent les mêmes résultats que le plug-in DNUI mais rien qui prend en compte d'autres utilisations de l'image (si c'est même possible?). Toute aide serait très appréciée.

20
G-Olly

Suppression d'images à l'aide du plugin:

Vous pouvez utiliser ce plugin, il cherchera dans votre base de données et vérifiera si une image est insérée dans un message (contenu, image sélectionnée, n'importe quel champ personnalisé, n'importe où ...) ou en arrière-plan ...

Si l'image n'est utilisée nulle part, vous aurez la possibilité de la supprimer. Vous obtiendrez la liste de toutes les images de votre site qui ne sont plus utilisées, ce qui vous permet de les supprimer en toute sécurité.

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

et cela fonctionne toujours, même s'il est obsolète

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


Suppression d'images manuellement:

Vous pouvez également rechercher dans votre bibliothèque multimédia des images non attachées à des publications et à des pages.

Accédez à la médiathèque et cliquez sur le bouton "unattached" pour afficher toutes les images susceptibles d'être affichées sur d'autres parties de votre site ou non utilisées.

4
Advanced SEO

Cron/tâches planifiées et une exploration de base de données est votre ami

Il faudrait un plugin, vous pouvez même lui attribuer un intervalle wp_cron, pas très différent de celui suggéré ci-dessus, mais en ajoutant la vérification de tout champ similaire à 'post_content' (vous devrez les identifier, en fonction de votre WP environnement) pour l'URI/URL de l'image. Cela risque de prendre beaucoup de temps/de surcharger les processus du système - de manière réaliste, il ne faudrait exécuter ce processus qu'une fois par jour ou par semaine - en supposant qu'il n'y ait pas d'autres raisons juridiques/commerciales à exécuter plus fréquemment.

une configuration source de base de données maître-esclave permet à ce processus d’être beaucoup moins préjudiciable aux performances, mais je pense que cela dépasse le cadre de cette question.

3
Brandt Solovij

J'ai essayé le plugin Image Cleanup et c'est le meilleur, mais c'est toujours bien de faire une sauvegarde en premier.

2
cowboy14

Vous devez analyser votre dossier wp-content/uploads pour rechercher les fichiers téléchargés, puis votre base de données pour rechercher les références à ces fichiers, puis les faire correspondre. Ce qui ne peut pas être assorti devrait pouvoir être retiré en toute sécurité.

L'analyse de la base de données est la partie la plus délicate. La plupart des références de fichiers sont stockées dans la médiathèque, à laquelle vous pouvez accéder à l'aide des fonctions/API standard de WordPress. Mais qu'advient-il des fichiers supprimés de la médiathèque mais toujours référencés par des publications? Ou des fichiers auxquels d'autres plugins sont liés de différentes manières?

J'ai fait un nombre considérable de tests et d'après ce que j'ai rassemblé, toutes les références de fichier sont soit stockées au format texte (c'est-à-dire juste une cellule de tableau égale au chemin du fichier ou à l'URL), au format HTML (c'est-à-dire au contenu d'un article), en tant que données sérialisées, ou enfin en tant qu’objets JSON. Vous devrez scanner toute la base de données et essayer de deviner quel format est utilisé dans chaque cellule. Bien sûr, il existe peut-être d'autres méthodes exotiques utilisées par certains plug-in pour conserver les références à leurs fichiers, mais celles-ci ne peuvent être gérées que cas par cas.

En conséquence, j’ai écrit un plugin qui fait tout cela automatiquement, car j’en avais besoin pour certains sites Web de nos clients, et je l’ai baptisé Theia Upload Cleaner . Cela a bien fonctionné pour moi, mais bien sûr, vous devriez toujours faire une sauvegarde avant d'essayer quelque chose comme ça.

1
liviucmg