Як отримати зображення з URL-адреси та встановити як показане зображення / розмір мініатюри


17

Враховуючи ідентифікатор Vimeo, я можу отримати ескіз із відео через Vimeo Simple API. Замість того, щоб дзвонити API щоразу, коли моя сторінка завантажується, я хочу встановити зображення як мініатюру повідомлення за допомогою save_postгачка (подібно до цього питання ).

Моя проблема полягає в тому, що я не знайомий з URL-дзвінками в php. Я хотів би знати:

  1. переваги / недоліки використання такого методу, як скручування порівняно з WP_Http. Чи один "кращий", ніж інший?

  2. порядок, у якому я повинен викликати функції для успішного встановлення мініатюри повідомлення.

Будь-яка допомога буде дуже вдячна.


Хтось це зрозумів? Я також намагаюся це зробити.

Відповіді:


12

Моїм улюбленим способом вирішення цієї проблеми було використання трохи задокументованої функції, яку я виявив в іншому пості: media_sideload_image

Він працює, отримуючи URL-адресу зображення у редакторі завантаження WordPress, а потім пов'язуючи зображення з вкладеннями до публікації.

Ви можете спробувати так:

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

Привіт @David Джон Сміт :

1.) Якщо ви перебуваєте в WordPress, (майже) завжди користуйтеся WP_Http; це одна з багатьох речей, які мені подобається працювати з WordPress. Чому це називати, а не CURL? Ну, тому що він має приємніший синтаксис і він викликає CURL, якщо доступний CURL. Якщо ні, то він вибирає один із 3 інших варіантів. Так що це справді геніальний шматок комплекту.

2.) Щоб відповісти на друге запитання, мені потрібно знати, як ви хочете назвати файли, які ви завантажуєте?


Спасибі Майку. Що стосується поштових мініатюр, я на самому ділі не хвилює , як вони називаються, я просто хотів би бути в змозі отримати доступ до них , як ставиться до повідомлення, або post_thumbnail()чи get_post_meta(). Я думаю, було б сенс називати його ідентифікатором поста.
Девід Джон Сміт

будь-яке оновлення з цього приводу?
NetConstructor.com

@NetConstructor - Дійсно важко відслідковувати питання, які перебувають у стані "очікування", так що ні. Щойно я створив папку "очікує" на панелі закладок, я побачу, чи не можу я більше відповідати цьому. Але я зараз не маю часу для цього, тому доведеться повернутися до нього.
MikeSchinkel

@Mike - дякую Майку, я просто подумав, що ти, можливо, мав тут рішення, адже серед іншого ти, здається, є майстром цього матеріалу :-)
NetConstructor.com

@ NetConstructor.com - LOL! Дякую, я просто майстер налагоджувача, це все. :)
MikeSchinkel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.