MT Data APIを使って記事中の外部画像をアセットに登録するスクリプト - uehatsu's tech blog

弊社ワンダーツーのブログメディア「ワンダードライビング」が、シックス・アパート様の事例紹介に掲載されました。「ワンダードライビングがMovable Typeを使う理由」

why_to_use_the_mt.pngこの記事のなかで、flickrにアップした画像(外部画像)をアセットとして登録する方法について問い合わせがありましたので、こちらで技術的な事をまとめてみたいと思います。

まずワンダードライビングでは先日リニューアルを行い、エントリーに画像がある場合は必ずアセットに設定するようになりました。また、そのアセットの中でも記事を代表する画像をカスタムフィールドに設定するようにしています。これにより、カテゴリーアーカイブなどで記事のサムネールが表示されるようになっています。

しかしリニューアル前の過去記事には、このアセットもカスタムフィールドも設定されておらず、カテゴリーアーカイブなどにはその際「ダミー画像(?)」が表示され、ちょっと寂しい感じになっていました。

そこで「過去記事にもサムネールを!!」というオーダーが入り、真っ先に考えたのがData APIを使う事。別にData APIである必要も無かったのですが、やはりアセットのアップロード機能があるのは嬉しい。これを利用しない手はないなという訳でさくっと作ってみました。

まずData APIを使ってエントリーの本文と続き、アセットを取得します。

アセットが設定済みならそのエントリーは飛ばし次へ。未設定ならつづいて処理を行います。

本文と続きからflickrのアドレスを検索し画像があればそのURLを検出します。

flickr画像をURLからダウンロードします。

ダウンロードした画像をData APIを使ってアセットとしてアップロードします。

そのアセットを画像に紐付けます。これはData APIの機能に無いので、プラグインで拡張しました。

その後、アセットに設定した画像をカスタムフィールドに設定します。

ここまでの処理を全エントリーに対して行うと、設定されていなかったアセットやカスタムフィールドが設定されるという具合です。

と、ここまで書いて、この内容以前のエントリーに書いているのに気づきました。あーw まぁ、いいや(^^;)

p.s. 先日、藤本さんのData APIハンズオンに参加してきました。今度名古屋でもあるとの事。Data APIに興味があって東海地区にお住まいの方は参加してみてはいかがでしょうか?

Movable Type 6 本格活用ガイドブック (Web Designing BOOKS)
Movable Type 6 本格活用ガイドブック (Web Designing BOOKS) 藤本 壱 柳谷 真志 奥脇 知宏 シックス・アパート株式会社

マイナビ 2013-11-30
売り上げランキング : 80852


Amazonで詳しく見る
by G-Tools

 
カテゴリ

Who is uehatsu?

uehatsu

アーカイブ

Facebook page