it-swarm.com.de

Hochladen von Imagick-Ressourcen auf Medien in WordPress

    $filePath = wp_get_attachment_url( $id );
$tempfilename = explode("/", $filePath);
$temppdffile = end($tempfilename);
$cuurentPath = plugin_dir_path( __FILE__ ).$temppdffile;
$im = new Imagick();
$im->setResolution(300, 300);
$im->readImage( $cuurentPath.'[0]'); 
$im->setImageFormat('jpg');

Ich habe den obigen Code .. Ich habe das Bild erfolgreich generiert .. $ im Aber ich muss das Bild auf .. Medien in WordPress als vorgestellten Bild speichern? Jede Idee .. versuchte alles

1
Int-khab

Ich bin mit Imagick nicht allzu vertraut, aber wenn Sie eine URL für das Bild erhalten, das Sie damit erstellt haben, ist der Rest mit der media_sideload_image() -Funktion von WordPress ziemlich einfach. Hier ist ein grundlegendes Beispiel, das im wp-admin-Bereich funktioniert (wie auf der Einstellungsseite). Beachten Sie, dass Sie anscheinend Ihre $id-Variable anstelle meines $post_id verwenden würden:

// load image from URL into media library, set a post as its parent, and return new attachment's id
$attachment_id = media_sideload_image( $image_url, $post_id, $img_title, 'id'); 
if( !is_wp_error( $attachment_id ) ) { // if no error returned...
    // ...Set above loaded image as the featured image of the current post
    set_post_thumbnail($post_id, $attachment_id);
}

Beachten Sie, dass Codex sagt, dass der dritte Parameter von media_sideload_image die Beschreibung des Bildes festlegt, aber den Bildtitel festlegt. Außerdem haben sie gerade den vierten Parameter für die Rückgabe der Anhangs-ID in 4.8 hinzugefügt, sodass Sie hoffentlich auf dem neuesten Stand sind.

Mehr Info:

Beachten Sie auch, dass Sie, wenn Sie dies im Front-End implementieren, die folgenden drei Dateien in Ihr Skript aufnehmen müssen, damit media_sideload_image das Hochladen usw. übernehmen kann:

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