So rufen Sie das Bild aus URL ab und setzen Sie als Vorschaubild nach Bild/Post
-
16-10-2019 - |
Frage
Bei einer Vimeo -ID kann ich über Vimeo Simple API ein Miniaturbild aus dem Video abrufen. Anstatt die API jedes Mal aufzurufen, wenn meine Seite geladen wird, möchte ich das Bild als Miniaturansicht mit der Stelle festlegen save_post
Haken (ähnlich wie diese Frage).
Mein Problem ist, dass ich mit URL -Anrufen in PHP nicht vertraut bin. Ich würde gerne wissen:
die Vorteile/Nachteile der Verwendung einer Methode wie Curl im Vergleich zu
WP_Http
. Ist einer "besser" als der andere?Die Reihenfolge, in der ich Funktionen anrufen sollte, um das Post -Thumbnail erfolgreich festzulegen.
Jede Hilfe wäre sehr geschätzt.
Lösung
Meine bevorzugte Art, dieses Problem zu behandeln, bestand darin, eine kleine dokumentierte Funktion zu verwenden, die ich in einem anderen Stack -Beitrag entdeckt habe: media_sideload_image
Es funktioniert, indem es eine Bild -URL an das WordPress -Upload -DIR abruft und das Bild dann den Anhängen eines Beitrags verknüpft.
Sie können es so versuchen:
// required libraries for media_sideload_image
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
// $post_id == the post you want the image to be attached to
// $video_thumb_url == the vimeo video's thumb url
// $description == optional description
// load the image
$result = media_sideload_image($video_thumb_url, $post_id, $description);
// then find the last image added to the post attachments
$attachments = get_posts(array('numberposts' => '1', 'post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC'));
if(sizeof($attachments) > 0){
// set image as the post thumbnail
set_post_thumbnail($post_id, $attachments[0]->ID);
}
Andere Tipps
Hi @David John Smith:
1.) Wenn Sie in WordPress sind (fast) immer verwenden WP_Http
; Es ist eines der vielen Dinge, die ich am Arbeiten mit WordPress liebe. Warum nennen Sie es und locken Sie es nicht? Nun, weil es eine schönere Syntax hat und Curl aufruft, wenn curl verfügbar ist. Wenn nicht, wählt es aus einer von 3 anderen Optionen aus. Es ist also wirklich ein brillantes Stück Kit.
2.) Um die zweite Frage zu beantworten, muss ich wissen, wie Sie die Dateien benennen möchten, die Sie herunterladen?