タイトルの通り、Wordpress で 記事に中にあるVimeoの埋め込み動画のIDを取得してサムネイル画像を取得する方法が知りたいです。
下記のサイトを参考にしてVimeoのサムネイル画像を取得したいのですが、どうも「preg_match_all」で取得できていないようで、結果が空文字になってしまいます。
参考サイト: https://celtislab.net/archives/20141120/vimeo-thumbnail/
下記がfunction.phpのコードです。
php
1function get_post_movie($item) { 2 $thumnail_url =''; 3 $pattern = array( '#vimeo.com/([0-9]+)#', 4 '#vimeo.com/channels/[A-Za-z0-9]+/([0-9]+)#', 5 '#vimeo.com/groups/[A-Za-z0-9]+/videos/([0-9]+)#', 6 '#player.vimeo.com/video/([0-9]+)#' 7 ); 8 9 foreach ( $pattern as $str ) { 10 if(preg_match_all( $str, $item->post_content, $matches)) 11 { 12 if(!empty($matches[1][0])){ 13 $vimeoid = $matches[1][0]; 14 $response = wp_remote_get( "http://vimeo.com/api/oembed.json?url=http%3A//vimeo.com/$vimeoid" ); 15 16 if ( ! is_wp_error( $response ) && $response['response']['code'] === 200 ) 17 { 18 $obj = json_decode( $response['body'] ); 19 $thumburl = $obj->thumbnail_url; 20 $thumnail_url = $obj->thumbnail_url; 21 $atrsize = array('width' => $obj->thumbnail_width, 'height' =>$obj->thumbnail_height); 22 break; 23 } 24 } 25 } 26 } 27 return $thumnail_url; 28} 29
get_post_movie($item)の呼び出し元は
html
1<img src="<?php echo get_post_movie($post); ?>" />
で呼び出しています。($postにはget_posts()で取得した記事一覧をforeach ($cat_post as $post)の$postが入っています。)
結果が「src=""」になってしまうのですが、どこが間違っているのかご教授いただきたいです。
また、もっと違う方法があれば、ご提案をお願いいたします。
あなたの回答
tips
プレビュー