RSSを取得し自サイトに表示する為に参考にした記事

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

RSSを取得し、リンクと記事タイトルを自サイトに掲載しようと思ったのですが、Google Feed APIがサービス終了しているということで、代替手段で実装する必要が出てきました。参考にしたサイトや、自分用に変更したポイントをまとめておきます。

さいしょに

どうも調べた所、ajaxのクロスドメイン制約により、RSS取得先が同じドメイン内の場合はjQueryだけでいけるようですが、RSSが外部サイトの場合はそうはいかないようです。また、この際サブドメインも、外部サイトと扱われるようでした。

ということで、RSS取得先によってコーディングが変わります。

・自サイトとRSSフィードが同ドメイン
・自サイトとRSSフィードが別ドメイン
・Wordpress

上記3パターンを書いておきたいと思います。

同ドメインの場合

【jQuery】緊急案件:Google Feed API が廃止になっているので代替案を紹介します。

基本、上記記事でいけました。デザイン調整のために、htmlタグにクラス名を入れたりはしました。

別ドメインの場合

【jQuery + PHP】クロスドメイン対応版:Google Feed API の代替案を紹介します。

上記記事を参考にやりました。自分の場合、掲載したいのはリンク付きタイトルだけで、ディスクリプションは必要なかったので、該当部分のコード「data[i].description.text」は消しました。具体的には、下記のように変更しました。

変更前

output.find('ul').append('<li><a href="' + data[i].link.text + '">' + data[i].title.text + '</a>' + data[i].description.text + '</li>');

変更後

output.find('ul').append('<li><a href="' + data[i].link.text + '">' + data[i].title.text + '</a></li>');

また、デザイン調整のためにここからさらにhtmlタグにクラスをつけたりしました。

WordPressの場合

基本編

【PHP】外部サイトのRSS情報を取得して表示させる方法。

この記事を参考にやりました。上にも書きましたが、タイトルとリンク以外いらなかったので、必要無いところを削って下記の感じにしました。

<?php
$rss = simplexml_load_file('http://hogehoge.com/feed');
echo '<ul>';
foreach($rss->channel->item as $item){
	$title = $item->title;
	$link = $item->link;
?>
<li><a href="<?php echo $link; ?>" target="_blank"><?php echo $title; ?></a></li>
<?php }  echo '</ul>'; ?>

上のコードからさらにhtmlタグいじって(クラスつけたり、div追加したり)、完成させました。

読み込み記事数を指定したい場合

【WordPress】外部サイトのRSS情報を取得して表示させる方法。
記事数を指定したい場合は、こちらも便利です。

さいごに

備忘録メモエントリーでした。


SNSでもご購読できます。

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください