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).
la source
Réponses:
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'écranla source
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
la source
@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.
la source
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 ...
la source
/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.