it-swarm.dev

Bereinigen Sie den Upload-Ordner und die Datenbankstruktur der Medienbibliothek

Ich aktualisiere und bereinige ein altes Blog, das auf Blogger.com gestartet und dann auf WordPress 2.1, 2.3 und jetzt 3.0, das von mir gehostet wird, umgezogen ist. Die Bilder in den Posts sind verstreut: Die meisten befinden sich in /wp-content/, aber nicht alle in /wp-content/uploads/ oder /wp-content/uploads/year/month/. Andere verweisen immer noch auf die Bildserver von blogger.com. Ich möchte sie alle in /wp-content/uploads/year/month/ konsolidieren, was meiner Meinung nach der "richtige" Ort ist. Dies sollte spätere Upgrades erleichtern.

Wie geht das am besten? Ich möchte auch die Metadaten aktualisieren, damit die Medienbibliothek alle verwalten kann. Ich konnte keine Dokumentation zu diesem Thema finden. Tut mir leid, wenn ich es verpasst habe, bitte weisen Sie mich darauf hin.

Natürlich würde ich Weiterleitungen von den alten zu den neuen Standorten bereitstellen. Wie geht das am besten? Eine Vorlage 404.php eines Plugins? Ich möchte einige Protokollierungen hinzufügen, damit wir die verweisenden Seiten finden und möglicherweise korrigieren können.

(Diese Frage wurde ursprünglich in den WordPress-Support-Foren gestellt , erhielt dort aber keine nützliche Antwort).

10
Jan Fabry

W3-Total Cache verfügt über eine Funktion, die alle Ihre Beiträge scannt und alle externen Bilder in die Medienbibliothek importiert und die Pfade zum neuen Speicherort ändert.

Siehe Screenshot

alt text

7
Chris_O

Der richtige Ort ist die aktuelle Einstellung, würde ich sagen. Wenn Sie jetzt einen Upload-Ordner (anstelle der Jahre/Monat-Unterordner) verwenden, gehen Sie zu diesem Ordner (möglicherweise sehr voll, aber einfacher zu sortieren). Verschieben Sie also einfach alle Dateien aus den Jahr/Monat-Unterverzeichnissen 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 Skript PHP, das das Datum aus der Datenbank ausliest, in das richtige Verzeichnis verschieben. Das gleiche Skript muss auch die URL-Pfade erneut übernehmen.

Das ist ungefähr dasselbe Skript, das Mike vorgeschlagen hat.

Momentan unterstützt die Benutzeroberfläche von WP 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

2
hakre

@Jan Fabry: Sie werden wahrscheinlich jeden Fall separat angehen müssen, d. H. Die von Blogger gehosteten Bilder und die außerhalb von WP-Inhalten usw.

Hier ist ein Plugin zum Importieren aus Blogger. Es wurde eine Weile nicht mehr aktualisiert, funktioniert aber möglicherweise immer 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 meines Erachtens nur ein PHP -Skript schreiben, das Ihre Dateien und Ihre Posts auf eingebettete Bild-URLs überprüft, eine Liste mit Überschneidungen erstellt, die Dateien dann verschiebt und den Verweis im Post aktualisiert . Oder vielleicht haben Sie Glück und dieses Plugin funktioniert immer noch und erledigt es für Sie!

Viel Glück.

1
MikeSchinkel

Vielleicht (und das ist nur für zukünftige Leser - es ist ein altes Q) können Sie alle 'post_type' => 'attachments' auflisten und sich von dort trennen. Ich meine das Abrufen der Beiträge und das Speichern der verschiedenen Speicherorte in einem Array. Dann sortieren Sie dies aus, um einen Überblick darüber zu erhalten, wo Ihre Bilder herumliegen ...

0
kaiser