Google Feed API で読み込んだRSSの概要文のHTMLタグが削除される

zRssFeedを使って、自分が管理するWebサイトにこのブログ(Wordpress 3.1.4)が生成するRSSを読み込んだんですが、コンテンツ概要の最後の「続きを読む …」の<a>タグが削除されてしまっています。

「続きを読む …」となっているのに続きが読めないのは困ります。

で、ソース(jquery.zrssfeed.js)を調べてみたところ、zRssFeedはGoogle Feed API を使っているようで…、Google Feed APIでは”コンテンツの概要”( contentSnippet )にHTMLタグは使えないっぽいです。知りませんでした。

参考ページ:
フィードからタイトルやエントリを取得 – フィードの取得 – Google AJAX Feed API入門

ということで、jquery.zrssfeed.js の以下の部分を修正してリンクテキストを復活させたので、その備忘録。

修正前

// Use feed snippet if available and optioned
if (options.snippet && entry.contentSnippet != '') {
	var content = entry.contentSnippet;
} else {
	var content = entry.content;
}

html += '<p class="feed-entry-content">'+ content +'</p>'

コンテンツ概要がRSSフィードにあるので、自動的に概要が表示されるんでしょうかね。

修正後

// Use feed snippet if available and optioned
if (options.snippet && entry.contentSnippet != '') {
	var content = entry.contentSnippet;
	//↓この行を新規に追加
	content = content.replace(/(続きを読む ...)/,'<a href="'+entry.link+'">$1</a>');
} else {
	var content = entry.content;
}

html += '<p class="feed-entry-content">'+ content +'</p>'

ただの文字列「続きを読む …」を正規表現を使って「<a href=”entry.link”>続きを読む …</a>」に置換します。
“entry.link”はGoogle Feed API で該当記事へのリンクURLを示しています。
「続きを読む …」の文字列は、CMSやブログサービス毎に生成される文字列が違うと思うので、そこは適宜変更してください。

これで無事にリンクテキストが表示されました。

備忘録 | , , , , |