URL에서 이미지를 검색하고 추천 이미지 / 게시판 미리보기 이미지로 설정하는 방법


17

Vimeo ID가 주어지면 Vimeo Simple API를 통해 비디오에서 썸네일을 검색 할 수 있습니다. 내 페이지가로드 될 때마다 API를 호출하는 대신 save_post후크를 사용하여 이미지를 게시물 미리보기 이미지로 설정하고 싶습니다 ( 이 질문 과 유사 ).

내 문제는 PHP의 URL 호출에 익숙하지 않다는 것입니다. 나는 알고 싶다:

  1. curl과 같은 방법을 사용할 때의 이점 / 단점 WP_Http. 하나는 다른 것보다 "더 나은"가요?

  2. 게시물 미리보기 이미지를 성공적으로 설정하기 위해 함수를 호출해야하는 순서입니다.

도움을 주시면 감사하겠습니다.


누구든지 이것을 알아 냈습니까? 나는 이것을하려고 노력하고있다.

답변:


12

이 문제를 처리하는 가장 좋아하는 방법은 다른 스택 게시물에서 발견 한 약간의 문서화 된 기능을 사용하는 것입니다. media_sideload_image

WordPress 업로드 디렉토리에 이미지 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);
}  

4

@David John Smith 안녕하세요 .

1.) WordPress에 있다면 (거의) 항상 사용하십시오 WP_Http. WordPress 작업에 대해 내가 좋아하는 많은 것 중 하나입니다. 왜 CURL이 아닌 그것을 호출합니까? 글쎄, 그것은 더 좋은 구문을 가지고 있고 CURL을 사용할 수 있으면 CURL을 호출하기 때문입니다. 그렇지 않은 경우 3 가지 다른 옵션 중 하나를 선택합니다. 정말 훌륭한 키트입니다.

2.) 두 번째 질문에 답하려면 다운로드하는 파일의 이름을 어떻게 지정하고 싶습니까?


고마워 마이크. 게시물 미리보기 이미지는 이름이 어떻게 지정되어 있는지 상관하지 않습니다 . post_thumbnail()또는 로 게시물과 관련된 게시물에 액세스하고 싶습니다 get_post_meta(). 게시물 ID로 이름을 지정하는 것이 좋습니다.
David John Smith

이것에 대한 업데이트?
NetConstructor.com

@NetConstructor- "대기 중"상태 인 질문을 추적하기가 정말 어렵습니다. 북마크 바에 "보류 중"폴더를 만들었는데 더 일관성이 없는지 확인할 수 있습니다. 그러나 지금은 시간이 없기 때문에 다시 돌아와야합니다.
MikeSchinkel 23

@ Mike-고마워 Mike, 방금 당신이 여기에 해결책을 가지고 있다고 생각했을 것입니다. 다른 것들 중에서 당신 이이 물건의 주인이 된 것처럼 보입니다 :-)
NetConstructor.com

@ NetConstructor.com-LOL! 고마워, 나는 단지 디버거의 마스터입니다. :)
MikeSchinkel 23
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.