カテゴリ:雑記

Vimeoの動画からブログ記事のアイキャッチ画像を自動的に作成する方法

𝕏

※記事の内容は執筆時点のものです。記事内のリンクからアフィリエイト報酬を得ることがあります。

wordpress

以前、Wordpressのプラグイン「Auto post Thumbnail」を改造してYoutubeの動画からアイキャッチ画像を生成する方法を紹介しましたが、それを拡張してVimeoからもアイキャッチが作成できるようにしてみました。

方法は前回と同じ。auto-post-thumbnail.phpの中から以下の記述の部分を見つけます。

// Get all images from post's body
    preg_match_all('/<\s*img [^\>]*src\s*=\s*[\""\']?([^\""\'>]*)/i', $post[0]->post_content, $matches);

中央よりやや後ろ、apt_publish_postというFunctionの中にあります。見つけたら、その後ろに以下の記述を追加します。

if (empty($matches[0])) {
    preg_match('%(?:player.vimeo\.com\/video\/)([^"&?/ ]{8})|(?:youtube\.com/(?:user/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $post[0]->post_content, $match);

    if (!empty($match[1])) {
        $imgid = $match[1];
        $hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$imgid.php"));
        $matches=array();
        $matches[0]=$matches[1]=array($hash[0]['thumbnail_large']);
    }
    if (!empty($match[2])) {
        $matches=array(); $matches[0]=$matches[1]=array('http://i3.ytimg.com/vi/'.$match[2].'/hqdefault.jpg');
    }

}

あんまりスマートではないですが、動いているので良しとしよう。

この方法だとプラグインがアップデートするたびに再修正しなければいけないので、根本的にはやっり有料版のAuto Post Thumbnail PROを使うのがいいのでしょうね。