Nettoyage du dossier de téléchargement, structure de la médiathèque db

10

Je fais une mise à niveau et un nettoyage d'un ancien blog qui a commencé sur Blogger.com, puis est passé à WordPress 2.1, 2.3 et maintenant 3.0 auto-hébergé. Les images dans les messages sont éparpillées: la plupart sont dans /wp-content/, mais pas toutes dans /wp-content/uploads/ou /wp-content/uploads/year/month/. D'autres font encore référence aux serveurs d'images blogger.com. Je veux les consolider tous /wp-content/uploads/year/month/, ce qui, je pense, est le "bon" endroit? Cela devrait faciliter les mises à niveau ultérieures.

Quelle est la meilleure façon de procéder? Je voudrais également mettre à jour les métadonnées, afin que la médiathèque puisse les gérer toutes. Je n'ai pu trouver aucune documentation à ce sujet, donc désolé si je l'ai manqué, veuillez 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 modèle 404.php, d'un plugin? Je voudrais ajouter un peu de journalisation, afin que nous puissions trouver les pages de référence et peut-être les corriger.

(Cette question a été initialement posée sur les forums de support WordPress , mais n'a obtenu aucune réponse utile).

Jan Fabry
la source
cherchez-vous un plugin qui fait le travail?
hakre
Jan? Des commentaires sur votre problème? Aucune réponse ne vous plaît? Aucun commentaire utile?
hakre
Je suis d'accord qu'une sorte d'éditeur de masse de médias serait utile. Quelque chose qui vous permet d'importer des médias à partir de différents dossiers et de les déplacer rapidement selon certaines règles. Je pourrais y travailler en fait.
2010

Réponses:

7

W3-Total Cache a une fonctionnalité qui analysera toutes vos publications et importera toutes les images externes dans la bibliothèque multimédia et changera les chemins vers le nouvel emplacement.

Voir capture d'écran

texte alternatif

Chris_O
la source
2

L'endroit correct est le réglage actuel, je dirais. Donc, si vous utilisez maintenant un dossier de téléchargement (au lieu des sous-dossiers années / mois), allez avec celui-ci (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 changer l'URL -Les chemins d'accès dans la base de données devraient normalement faire le travail.

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

C'est quelque chose comme exactement le même script que mike a suggéré.

À l'heure actuelle, l'interface utilisateur de 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 de toute façon un sens pour un lot.

Plugins existants et associés

  • Ajouter à partir du serveur (plugin Wordpress) - "Ajouter à partir du serveur" est un plugin rapide qui vous permet d'importer des médias et des fichiers dans le gestionnaire de téléchargements WordPress à partir du système de fichiers des serveurs Web
hakre
la source
1

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

Voici un plugin pour importer à partir de Blogger; il n'a pas été mis à jour depuis un certain temps mais peut toujours fonctionner ou au moins avoir du code que vous pouvez utiliser:

Il existe également un ancien plugin qui peut ou non fonctionner:

Au-delà de cela, je pense que vous aurez juste besoin d'écrire un script PHP qui scanne vos fichiers et scanne vos publications à la recherche d'URL d'images incorporées, développe une liste croisée puis déplace les fichiers et met à jour la référence dans la publication. Ou peut-être que vous aurez de la chance et que ce plugin fonctionnera toujours et le fera pour vous!

Bonne chance.

MikeSchinkel
la source
0

Peut-être (et c'est juste pour les futurs lecteurs - c'est un vieux Q) que vous pouvez lister tous 'post_type' => 'pièce jointe' et commencer à vous séparer de là. Je veux dire récupérer les messages et enregistrer les différents emplacements dans un tableau. Triez ensuite ces informations pour avoir un aperçu de la position de vos images ...

kaiser
la source
1
@kaiser: C'est peut-être une vieille question, mais je travaille toujours sur certaines parties, donc toutes les suggestions sont les bienvenues! J'espère écrire ce que j'ai fini comme réponse bientôt.
Jan Fabry
@Jan: Je suppose que j'appellerais tous les 'post_type' => 'pièce jointe' puis j'appellerais l'emplacement (s'il est stocké quelque part dans les query_vars) et s'il n'existe pas dans un tableau prédéfini (premier vide), poussez-le Là. Avec le résultat, j'essaierais quelque chose avec array_intersect ou similaire pour simplement retourner les différents emplacements. Ce ne sont que quelques réflexions premières et rapides sur la façon de savoir où les choses se propagent. Jusqu'à présent, je n'ai aucune idée de ce que je ferais avec le résultat ou la redirection ...
kaiser
... Je suppose qu'il est possible de récupérer les différents emplacements des pièces jointes, puis de les déplacer et de mettre à jour l'emplacement dans la base de données. Je ne me soucierais pas trop des redirections. Le post le sait, quand le db le sait et qui se soucie vraiment de l'indexation des post-attachements. Vous préféreriez que personne ne lie directement / à chaud vos images (ou modèles de pièces jointes) et plutôt un lien vers le message contenant. Personnellement, je n'ai jamais utilisé de modèle de pièce jointe ni même défini de lien (à l'exception des lightboxes et similaires) vers une pièce jointe dans un message.
kaiser
@kaiser: J'ai actuellement d'abord créé des redirections et déplacé toutes les images "perdues" dans le /wp-content/uploads/moved/répertoire. De cette façon, tous les messages, même ceux qui font référence à d'anciens emplacements, continueront de fonctionner, et mes autres répertoires sont clairs (ce qui était le plus gros problème pour moi: il était très difficile de savoir ce qui appartenait à WordPress et ce qui ne l'était pas). Maintenant, je mets à jour les pièces jointes existantes et j'ajoute des images qui n'ont pas encore été ajoutées en tant que pièces jointes.
Jan Fabry
@Jan: "Maintenant, je mets à jour les pièces jointes existantes et j'ajoute des images qui n'ont pas encore été ajoutées en tant que pièces jointes." Par main - petit à petit? Je ne le sais pas exactement, mais je suppose que vous n'avez besoin que des redirections tant que les moteurs de recherche ne connaissent pas le nouvel emplacement. Le reste devrait s'appuyer sur les entrées db. Faux?
kaiser