Frage

Ich bin an einer großen Migration von einem anderen CMS zu WordPress beteiligt. Wir haben eine Kopie der Datenbank und haben herausgefunden, wie der Inhalt extrahiert wird, und erstellen Sie programmgesteuert WordPress -Beiträge daraus mithilfe einer Instanziierung der wpdb Klasse.

Es gibt jedoch ein paar tausend Bilder, die wir automatisch überfahren, die verschiedenen Größen generieren und dann an die Beiträge angeschlossen haben, um ungefähr eine Woche lang zu sparen!

Gibt es eine Möglichkeit, ein Bild von einer Remote-Site per URL zu erhalten und es in meinem Ordner wp-Uploads zu speichern? Ich denke, das verwendet das wp_http Aber damit bin ich nicht vertraut.

Sobald ich das Bild habe und es gespeichert habe, bin ich in Ordnung, wie ich es dann verwenden kann wp_generate_attachment_metadata um die verschiedenen Größen zu erstellen und wp_insert_attachment um es an einem Beitrag zu befestigen.

Danke Simon

War es hilfreich?

Lösung

Es gibt tatsächlich eine großartige Funktion, die alle drei dieser Dinge für Sie erledigt:

media_sideload_image( $url, $post_id, $description );

Das erste Argument ist die Remote -URL des Bildes, die Sie herunterladen möchten. Das zweite Argument ist die Post -ID des Beitrags, an den Sie das Bild anhängen möchten. Das dritte Argument ist optional, ist jedoch eine Beschreibung, wenn sie enthalten sind.

Ich würde vorschlagen, einen Weg zu finden, um die Downloads zu drosseln, damit Sie nicht weiter steuern, z. zu einer Zeit asynchron.

Andere Tipps

Johns Antwort ist korrekt: Verwenden media_sideload_image, Beachten Sie einfach, dass Sie diese Skripte möglicherweise vor dem Bedürfnis benötigen, wenn Sie dies nicht im Kontext von WP Admin tun:

require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');

Sehen https://codex.wordpress.org/function_reference/media_sideload_image#notes

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top