URLから画像を取得する方法と、特集画像/ポストサムネイルとして設定する方法

wordpress.stackexchange https://wordpress.stackexchange.com/questions/3029

  •  16-10-2019
  •  | 
  •  

質問

Vimeo IDを考えると、Vimeo Simple APIを介してビデオからサムネイルを取得できます。私のページがロードされるたびにAPIを呼び出すのではなく、ポストサムネイルとして画像を設定したい save_post フック(に似ています この質問).

私の問題は、PHPでのURLコールに精通していないことです。私が知りたいのですが:

  1. と比較してCurlのような方法を使用することの利点/欠点 WP_Http. 。 1つは他のものよりも「優れていますか」ですか?

  2. ポストサムネイルを正常に設定するために機能を呼び出す必要がある順序。

どんな助けも大歓迎です。

役に立ちましたか?

解決

この問題を処理する私のお気に入りの方法は、別のスタック投稿で発見した小さな文書化された機能を使用することでした。 media_sideload_image

WordPressアップロードDIRに画像URLをフェッチし、画像を投稿の添付ファイルに関連付けることで機能します。

あなたはそうするようにそれを試すことができます:

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

他のヒント

やあ @David John Smith:

1.)WordPressにいる場合は、(ほとんど)常に使用してください WP_Http;それは、私がWordPressで働くことについて好きな多くのことの1つです。なぜそれを呼ぶのであり、カールではないのですか?まあ、それはより良い構文があり、Curlが利用可能である場合、Curlを呼び出すからです。そうでない場合は、他の3つのオプションのいずれかから選択します。それは本当に素晴らしいキットです。

2.)2番目の質問に答えるには、ダウンロードしているファイルにどのように名前を付けたいかを知る必要がありますか?

ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top