WEB

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


投稿日:2018年4月17日 更新日:

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

参考にしたサイトや、自分用に変更したポイントをまとめておきます。

RSSの取得先と表示先が同じドメイン内か、外部かにより実装方法が変わる

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

また、この際サブドメインも、外部サイトと扱われるようでした。

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

  1. 自サイト(RSSを表示したいサイト)と、取得するRSSフィードが同ドメイン
  2. 自サイトとRSSフィードが別ドメイン
  3. WordPress

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

RSS表示(読み込み)サイトと取得先が、同じドメインの場合

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

基本、上記記事でいけました。

デザイン調整のために、htmlタグにクラス名を入れたりはしました。

RSS表示(読み込み)サイトと取得先が、別ドメインの場合

参考サイト【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で、RSSを取得(読み込み)、表示する場合

基本編

参考サイト【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情報を取得して表示させる方法。

記事数を指定したい場合は、上記記事も参考になります。便利です。

さいごに

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

-WEB

Copyright© ヨコログ , 2019 All Rights Reserved.