Cách truy xuất hình ảnh từ URL và đặt làm hình thu nhỏ hình ảnh / bài đăng nổi bật


17

Được cung cấp ID Vimeo, tôi có thể truy xuất hình thu nhỏ từ video thông qua API đơn giản Vimeo. Thay vì gọi API mỗi khi trang của tôi tải, tôi muốn đặt hình ảnh làm hình thu nhỏ của bài đăng bằng cách sử dụng save_posthook (tương tự như câu hỏi này ).

Vấn đề của tôi là tôi không quen với các cuộc gọi URL trong php. Tôi muốn biết:

  1. những lợi ích / hạn chế của việc sử dụng một phương pháp như curl so với WP_Http. Cái này tốt hơn những cái khác phải không?

  2. thứ tự mà tôi nên gọi các hàm để đặt thành công hình thu nhỏ của bài đăng.

Mọi sự trợ giúp sẽ rất được trân trọng.


Có ai đã tìm ra điều này? Tôi đang cố gắng làm điều này là tốt.

Câu trả lời:


12

Cách xử lý vấn đề yêu thích này của tôi là sử dụng một chức năng tài liệu nhỏ mà tôi đã khám phá trên một bài đăng ngăn xếp khác: media_sideload_image

Nó hoạt động bằng cách tìm nạp một url hình ảnh vào thư mục tải lên WordPress và sau đó liên kết hình ảnh với tệp đính kèm của bài đăng.

Bạn có thể thử nó như vậy:

// 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);
}  

4

Xin chào @David John Smith :

1.) Nếu bạn đang ở trong WordPress, (hầu như) luôn sử dụng WP_Http; đó là một trong nhiều điều tôi thích khi làm việc với WordPress. Tại sao gọi nó và không phải là CURL? Vâng, bởi vì nó có một cú pháp đẹp hơn và nó gọi là CURL nếu có sẵn CURL. Nếu không, nó chọn một trong 3 tùy chọn khác. Vì vậy, nó thực sự là một mảnh tuyệt vời của bộ.

2.) Để trả lời câu hỏi thứ 2 tôi sẽ cần biết bạn muốn đặt tên cho các tệp bạn đang tải xuống như thế nào?


Cảm ơn Mike. Đối với hình thu nhỏ của bài đăng, tôi không thực sự quan tâm đến việc chúng được đặt tên như thế nào, tôi chỉ muốn có thể truy cập chúng liên quan đến bài đăng, bằng post_thumbnail()hoặc get_post_meta(). Tôi đoán nó sẽ có ý nghĩa để đặt tên với ID bài.
David John Smith

Bất kỳ cập nhật về điều này?
NetConstructor.com

@NetConstructor - Thật khó để theo dõi các câu hỏi ở trạng thái "đang chờ xử lý", vì vậy không. Tôi vừa tạo thư mục "đang chờ xử lý" trên thanh dấu trang của mình, tôi sẽ xem liệu tôi có thể phù hợp hơn với điều đó không. Nhưng, tôi không có thời gian ngay bây giờ cho việc này vì vậy sẽ phải quay lại với nó.
MikeSchinkel

@Mike - cảm ơn Mike, chỉ cần nghĩ rằng bạn có thể đã có một giải pháp ở đây vì trong số những thứ khác bạn dường như là chủ nhân của công cụ này :-)
NetConstructor.com

@ NetConstructor.com - LOL! Cảm ơn, tôi chỉ là chủ nhân của trình gỡ lỗi, thế thôi. :)
MikeSchinkel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.