普通のHTMLファイルに、下記の「Google AJAX Feed API」を使ってJavaScriptを仕込み、他のブログから画像を出すことはできるんですが・・・
・画像を出す場合は、Google AJAX Feed APIのJASONフォーマットのcontent内に画像があればいいんですが、そうでない場合はXMLフォーマットで取ってきて、画像タグを取得し表示させる必要があります。
<script type="text/javascript" src="http://www.google.com/jsapi?key=YOUR-API-KEY"></script> <script type="text/javascript"> google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("RSS URL"); feed.setResultFormat(google.feeds.Feed.XML_FORMAT); feed.setNumEntries(20); feed.load(function(result) { if (!result.error) { var container = document.getElementById("rssfeed"); var items = result.xmlDocument.getElementsByTagName("item"); htmlstr = "<ul>"; for (var i = 0; i < items.length; i++) { // XMLフィールド取得 var titleElement = items[i].getElementsByTagName("title")[0]; var title = titleElement.firstChild.nodeValue; if (title.indexOf("PR:") == 0) { continue; } var linkElement = items[i].getElementsByTagName("link")[0]; var link = linkElement.firstChild.nodeValue; var dateElement = items[i].getElementsByTagName("dc:date")[0]; var date = dateElement.firstChild.nodeValue; var enclosureElement = items[i].getElementsByTagName("enclosure")[0]; var enclosure = enclosureElement.attributes.getNamedItem("url").value; var descriptionElement = items[i].getElementsByTagName("description")[0]; var description = descriptionElement.firstChild.nodeValue; //html組み立て //見出し htmlstr += "<li>"; htmlstr += "<div class='blog-date'>" + date + "</div>"; htmlstr += "<div class='blog-title'><a href='" + link + "'>" + title + "</a></div>"; htmlstr += "<div class='blog-clear'></div>"; htmlstr += "</li>"; //写真 if (enclosure) { htmlstr += "<div class='blog-img'>"; htmlstr += "<img alt='img-" + i + "' src='" + enclosure + "'></img>"; htmlstr += "</div>"; } //本文 htmlstr += "<div class='blog-content'><p>" + description + "</p></div>"; if (enclosure) { htmlstr += "<div class='blog-clear'></div>"; } } htmlstr += "</ul>"; //追加 container.innerHTML = htmlstr; } }); } google.setOnLoadCallback(initialize); </script>
しかし!、上記で使ったのとほぼ同じJavaScriptを使っているのに、WordPress内で実行すると画像だけが出たり、出なかったりします・・・? (出ない場合が多いですが)
一旦、普通のHTMLファイルで表示させてから、WordPressを表示すると画像が出る場合が多いので、キャッシュがらみの問題か?と思ってはいるのですが・・・。
※一難去って、また一難。WordPress嫌いになりそう・・。
※誰か、解決案のある方、コメントをどうぞ。
————————————————————————————————–
自分で回答するのもなんですが、なんとなく原因がわかりました。
上記のfeed.loadの関数部分は別ファイルにしていたのですが、それをgoogle.setOnLoadCallback(initialize); より前に定義すると直りました・・・・。(ガーン・・・)
.
<script type="text/javascript" <script type="text/javascript" src="<?php bloginfo('template_url');?>/css/default.js"></script> <script type="text/javascript"> google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("RSS Feed"); feed.setResultFormat(google.feeds.Feed.XML_FORMAT); feed.setNumEntries(5); feed.load(dispfeedXML); } google.setOnLoadCallback(initialize); </script>
WordPressに、Google AJAX Feed APIで画像を出す。 | GettingOUT