web-dev-qa-db-fra.com

Nettoyer le dossier de téléchargement, structure de la base de données Media Library

Je suis en train de mettre à niveau et de nettoyer un ancien blog qui a commencé sur Blogger.com, puis a migré vers WordPress 2.1, 2.3 et maintenant 3.0, auto-hébergé. Les images dans les publications sont dispersées: la plupart d’entre elles sont en /wp-content/, mais pas toutes en /wp-content/uploads/ ou /wp-content/uploads/year/month/. D'autres encore font référence aux serveurs d'images de blogger.com. Je veux tous les regrouper dans /wp-content/uploads/year/month/, qui est je pense le "bon" endroit? Cela devrait faciliter les mises à jour ultérieures.

Quelle est la meilleure façon de procéder? J'aimerais également mettre à jour les métadonnées afin que la médiathèque puisse toutes les gérer. Je ne trouvais aucune documentation à ce sujet. Je suis désolé si je l’ai manquée, merci de me le signaler.

Bien sûr, je fournirais des redirections des anciens emplacements vers les nouveaux. Quelle est la meilleure façon de procéder? Un template 404.php, d'un plugin? Je voudrais ajouter un peu de journalisation, afin que nous puissions trouver les pages de renvoi et peut-être les corriger.

(Cette question était posée à l'origine sur les forums d'assistance WordPress , mais n'a pas de réponse utile).

10
Jan Fabry

W3-Total Cache est doté d'une fonctionnalité qui analyse toutes vos publications, importe des images externes dans la médiathèque et modifie les chemins d'accès.

Voir la capture d'écran

alt text

7
Chris_O

Le bon endroit est le réglage actuel, je dirais. Donc, si vous utilisez maintenant un dossier de téléchargement (au lieu de sous-dossiers années/mois), allez avec ce dossier (peut-être très complet, mais plus facile à trier. Il suffit donc de déplacer tous les fichiers des sous-répertoires année/mois dans le répertoire de téléchargement et de modifier l'URL Les passages dans la base de données devraient normalement faire le travail.

Une fois que tout est dans un dossier (et trié), vous pouvez modifier la conception du dossier et déplacer les fichiers dans le bon répertoire avec un script PHP qui lit la date dans la base de données. Le même script doit également adopter à nouveau les chemins d’URL.

C'est à peu près le même script que celui suggéré par Mike.

À l'heure actuelle, l'interface utilisateur WP ne prend pas en charge le déplacement ou le renommage manuel des fichiers. Vous êtes donc lié à un code propre. Ce qui aurait du sens pour un lot de toute façon.

Plugins existants et associés

  • Ajouter depuis le serveur (plugin Wordpress) - "Ajouter depuis le serveur" est un plugin rapide qui vous permet d'importer des fichiers multimédia dans le gestionnaire de téléchargements WordPress à partir du système de fichiers Webservers.
2
hakre

@ Jan Fabry: Vous allez probablement devoir traiter chaque cas séparément, c'est-à-dire les images hébergées Blogger et celles en dehors de wp-content, etc.

Voici un plug-in pour importer depuis Blogger. il n'a pas été mis à jour depuis un moment mais peut encore fonctionner ou au moins avoir du code que vous pouvez utiliser:

Il y a aussi un plugin plus ancien qui peut ou peut ne pas encore fonctionner:

Au-delà de cela, je pense qu'il vous suffira d'écrire un script PHP qui analyse vos fichiers et vos messages à la recherche d'URL d'images incorporées, développe une liste intersectée, puis déplace les fichiers et met à jour la référence dans l'article. . Ou peut-être aurez-vous de la chance et ce plugin fonctionnera toujours et le fera pour vous!

Bonne chance.

1
MikeSchinkel

Peut-être (et ce n’est que pour les futurs lecteurs - c’est un vieux Q) que vous pouvez lister tous les 'post_type' => 'pièces jointes' et commencer à les séparer. Je veux dire aller chercher les messages et sauvegarder les différents emplacements dans un tableau. Réglez ensuite ceci pour obtenir un aperçu de l'emplacement de vos images ...

0
kaiser