はじめに
どうにも、記事の中に画像を取得する機能がBlogger公式の機能だとちゃんと撮ってきてくれなくて困っていました。Bloggerの公式のやりかたでは、
<img class='post-thumbnail' expr:alt='data:post.title' expr:src='data:post.thumbnailUrl' width='72px' height='72px'/>
などとやって記事中の画像を取得するのですが、これがどういう基準でとってくるのか、こないのかわかりづらい。
公式のやりかたは、こちらが参考になります。
Auto Read More with thumbnail for Blogger/Blogspot Posts | Helplogger | Blogger tips, tricks, tutorials and widgets
Javascript(jQuery)で画像を取ってくる
今回は、他の方が作ってくれている各テンプレートを参照して、自分にとって必要な部分だけを抜き出す形で作成しました。
ですので、個別の動きなどは実はよくわかっていません。すいません。。
Javascript
以下を/head の上あたりに入れてください。<script type='text/javascript'> summary_noimg = 650; summary_img = 450; img_thumb_height = 150; img_thumb_width = 200; </script> <script type='text/javascript'> //<![CDATA[ function createSummaryAndThumb(pID,blogurl){ var div = document.getElementById(pID); var imgtag = ""; var img = div.getElementsByTagName("img"); var summ = summary_noimg; if(img.length>=1) { imgtag = '<a class="thumbx" href="'+blogurl+'"><img src="'+img[0].src+'"/></a>'; summ = summary_img; } var summary = imgtag; div.innerHTML = summary; } //]]> </script>
HTML
HTMLは以下のように修正。<b:if cond='data:blog.pageType != "item"'> <b:if cond='data:blog.pageType != "static_page"'> <div expr:id='"summary" + data:post.id' ><data:post.body/></div> <script type='text/javascript'>createSummaryAndThumb("summary<data:post.id/>","<data:post.url/>");</script> </b:if> </b:if>
これで、画像が高確率で取得できます。
ちょっとカスタマイズ
『createSummaryAndThumb』というjavascriptの処理に今回は、編集対象となるdiv要素のIDと、記事のURLを渡して、javascript側で、画像を取得して書き換えてもらっています。<script type='text/javascript'>createSummaryAndThumb("summary<data:post.id/>","<data:post.url/>");</script>
imgtag = '<a class="thumbx" href="'+blogurl+'"><img src="'+img[0].src+'"/></a>';
最後に
newsifyなどで自分の記事を一覧表示するとかなりみやすいので、出来ればiPhoneで見た時には、その形にできれば、と考えているのですが、なかなか難しいですね。以上です。