Ich führe ein Upgrade und eine Bereinigung eines alten Blogs durch, das auf Blogger.com gestartet und dann auf selbst gehostete WordPress 2.1, 2.3 und jetzt 3.0 umgestellt wurde. Die Bilder in den Posts sind verstreut: Die meisten von ihnen sind in /wp-content/
, aber nicht alle in /wp-content/uploads/
oder /wp-content/uploads/year/month/
. Andere verweisen weiterhin auf die Bildserver von blogger.com. Ich möchte sie alle konsolidieren /wp-content/uploads/year/month/
, was meiner Meinung nach der "richtige" Ort ist. Dies sollte spätere Upgrades erleichtern.
Was ist der beste Weg, dies zu tun? Ich möchte auch die Metadaten aktualisieren, damit die Medienbibliothek alle verwalten kann. Ich konnte keine Dokumentation dazu finden. Wenn ich sie verpasst habe, weisen Sie mich bitte darauf hin.
Natürlich würde ich Weiterleitungen von den alten zu den neuen Standorten bereitstellen. Was ist der beste Weg, dies zu tun? Eine Vorlage 404.php
eines Plugins? Ich möchte eine Protokollierung hinzufügen, damit wir die verweisenden Seiten finden und möglicherweise korrigieren können.
(Diese Frage wurde ursprünglich in den WordPress-Supportforen gestellt , hat dort aber keine nützliche Antwort erhalten.)
quelle
Antworten:
W3-Total Cache verfügt über eine Funktion, mit der Sie alle Ihre Beiträge scannen, externe Bilder in die Medienbibliothek importieren und die Pfade zum neuen Speicherort ändern können.
Siehe Screenshotquelle
Der richtige Ort ist die aktuelle Einstellung, würde ich sagen. Wenn Sie jetzt einen Upload-Ordner verwenden (anstelle von Jahren / Monat-Unterordnern), verwenden Sie diesen (möglicherweise sehr voll, aber einfacher zu sortieren. Verschieben Sie also einfach alle Dateien aus den Unterverzeichnissen Jahr / Monat in das Upload-Verzeichnis und ändern Sie die URL -Pfade in der Datenbank sollten normalerweise die Arbeit erledigen.
Nachdem sich alles in einem Ordner befindet (und sortiert ist), können Sie das Ordnerdesign erneut ändern und Dateien mit einem PHP-Skript, das das Datum aus der Datenbank ausliest, in das richtige Verzeichnis verschieben. Das exakt gleiche Skript muss auch wieder URL-Pfade übernehmen.
Das ist ungefähr das gleiche Skript, das Mike vorgeschlagen hat.
Derzeit unterstützt die WP-Benutzeroberfläche das manuelle Verschieben oder Umbenennen von Dateien nicht, sodass Sie an einen eigenen Code gebunden sind. Was für eine Charge sowieso Sinn machen würde.
Bestehende und verwandte Plugins
quelle
@ Jan Fabry: Sie müssen wahrscheinlich jeden Fall separat behandeln, dh die von Blogger gehosteten Bilder und die Bilder außerhalb von wp-content usw.
Hier ist ein Plugin zum Importieren aus Blogger. Es wurde seit einiger Zeit nicht mehr aktualisiert, funktioniert aber möglicherweise noch oder verfügt zumindest über Code, den Sie verwenden können:
Es gibt auch ein älteres Plugin, das möglicherweise noch funktioniert oder nicht:
Darüber hinaus müssen Sie meiner Meinung nach nur ein PHP-Skript schreiben, das Ihre Dateien und Beiträge nach eingebetteten Bild-URLs durchsucht, eine Schnittliste erstellt, die Dateien verschiebt und die Referenz im Beitrag aktualisiert. Oder vielleicht haben Sie Glück und das Plugin funktioniert immer noch und erledigt es für Sie!
Viel Glück.
quelle
Vielleicht (und das ist nur für zukünftige Leser - es ist ein altes Q) können Sie alle 'post_type' => 'Anhang' auflisten und beginnen, sich von dort zu trennen. Ich meine, die Beiträge abzurufen und die verschiedenen Speicherorte in einem Array zu speichern. Dann sortieren Sie dies aus, um einen Überblick darüber zu erhalten, wo Ihre Bilder herumliegen ...
quelle
/wp-content/uploads/moved/
Verzeichnis verschoben . Auf diese Weise funktionieren alle Posts, auch diejenigen, die auf alte Speicherorte verweisen, weiter, und meine anderen Verzeichnisse sind klar (was das größte Problem für mich war: Es war sehr unklar, was zu WordPress gehörte und was nicht). Jetzt aktualisiere ich vorhandene Anhänge und füge Bilder hinzu, die noch nicht als Anhänge hinzugefügt wurden.