Bereinigungs-Upload-Ordner, Datenbankstruktur der Medienbibliothek

10

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.phpeines 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.)

Jan Fabry
quelle
Suchen Sie ein Plugin, das den Job erledigt?
hakre
Jan? Feedback zu Ihrem Problem? Gefällt dir keine Antwort? Kein Kommentar hilfreich?
hakre
Ich bin damit einverstanden, dass eine Art Medien-Bulk-Editor nützlich wäre. Mit dieser Funktion können Sie Medien aus verschiedenen Ordnern importieren und nach bestimmten Regeln schnell verschieben. Daran könnte ich tatsächlich arbeiten.
Noio

Antworten:

7

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 Screenshot

Alt-Text

Chris_O
quelle
2

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

  • Vom Server hinzufügen (Wordpress-Plugin) - "Vom Server hinzufügen" ist ein schnelles Plugin, mit dem Sie Medien und Dateien aus dem Webserver-Dateisystem in den WordPress-Upload-Manager importieren können
hakre
quelle
1

@ 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.

MikeSchinkel
quelle
0

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 ...

Kaiser
quelle
1
@kaiser: Es mag eine alte Frage sein, aber ich arbeite immer noch an Teilen davon, daher sind alle Vorschläge willkommen! Ich hoffe, bald aufschreiben zu können, was ich als Antwort erhalten habe.
Jan Fabry
@Jan: Ich denke, ich würde alle 'post_type' => 'Anhang' aufrufen und dann den Speicherort aufrufen (wenn dieser irgendwo in den query_vars gespeichert ist) und wenn er in einem vordefinierten (zuerst leeren) Array nicht vorhanden ist, ihn einschieben Dort. Mit dem Ergebnis würde ich etwas mit array_intersect oder ähnlichem versuchen, um nur die verschiedenen Speicherorte zurückzugeben. Das sind nur einige erste und schnelle und grobe Gedanken darüber, wie man herausfindet, wo das Zeug verteilt ist. Bisher habe ich keine Ahnung, was ich mit dem Ergebnis oder der Weiterleitung machen würde ...
Kaiser
... Ich denke, es ist möglich, die verschiedenen Speicherorte der Anhänge abzurufen, sie dann zu verschieben und den Speicherort in der Datenbank zu aktualisieren. Weiterleitungen würden mich nicht sonderlich interessieren. Der Beitrag weiß es, wenn die Datenbank es weiß und wer sich wirklich um die Indizierung von Post-Anhängen kümmert. Sie möchten, dass niemand Ihre Bilder (oder Anhangsvorlagen) direkt / hot verlinkt und stattdessen auf den enthaltenen Beitrag verlinkt. Ich persönlich habe nie eine Anhangsvorlage verwendet oder sogar einen Link (abgesehen von Leuchtkästen und ähnlichem) zu einem Anhang in einem Beitrag gesetzt.
Kaiser
@kaiser: Ich habe derzeit zuerst Weiterleitungen erstellt und alle "verlorenen" Bilder in das /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.
Jan Fabry
@Jan: "Jetzt aktualisiere ich vorhandene Anhänge und füge Bilder hinzu, die noch nicht als Anhänge hinzugefügt wurden." Per Hand - Stück für Stück? Ich weiß es nicht genau, aber ich denke, Sie brauchen nur die Weiterleitungen, solange die Suchmaschinen den neuen Standort nicht kennen. Der Rest sollte sich auf die Datenbankeinträge stützen. Falsch?
Kaiser