davidjohnsmith
  • 0
Новичок

Как получить изображение по URL-адресу и установить его в качестве избранного изображения/миниатюры сообщения

  • 0

Имея Vimeo ID, я могу получить миниатюру из видео через Vimeo Simple API. Вместо того, чтобы вызывать API каждый раз, когда загружается моя страница, я хочу установить изображение в качестве миниатюры сообщения с помощью save_post крючка (аналогично этому вопросу ).

Моя проблема в том, что я не знаком с вызовами URL в php. Я бы хотел знать:

  1. преимущества/недостатки использования такого метода, как curl, по сравнению с WP_Http . Один «лучше» другого?

  2. порядок, в котором я должен вызывать функции для успешной установки миниатюры сообщения.

Любая помощь будет принята с благодарностью.

Share
  1. Кто-нибудь понял это? Я тоже пытаюсь это сделать.

    • 0
  2. Мой любимый способ справиться с этой проблемой — использовать небольшую задокументированную функцию, которую я обнаружил в другом посте стека: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);
    }  
    
    • 0
  3. Привет @Дэвид Джон Смит :

    1.) Если вы используете WordPress, (почти) всегда используйте WP_Http ; это одна из многих вещей, которые мне нравятся в работе с WordPress. Почему это называется, а не CURL? Ну, потому что у него более приятный синтаксис, и он вызывает CURL, если CURL доступен. Если нет, он выбирает один из трех других вариантов. Так что это действительно блестящий набор.

    2.) Чтобы ответить на 2-й вопрос, мне нужно знать, как вы хотите назвать файлы, которые вы загружаете?

    • 0

Оставить ответ

You must login to add an answer.