RSSを取得し、リンクと記事タイトルを自サイトに掲載しようと思ったのですが、Google Feed APIがサービス終了しているということで、代替手段で実装する必要が出てきました。
参考にしたサイトや、自分用に変更したポイントをまとめておきます。
RSSの取得先と表示先が同じドメイン内か、外部かにより実装方法が変わる
どうも調べた所、ajaxのクロスドメイン制約により、RSS取得先が同じドメイン内の場合はjQueryだけでいけるようですが、RSSが外部サイトの場合はそうはいかないようです。
また、この際サブドメインも、外部サイトと扱われるようでした。
ということで、RSS取得先によってコーディングが変わります。
- 自サイト(RSSを表示したいサイト)と、取得するRSSフィードが同ドメイン
- 自サイトとRSSフィードが別ドメイン
- WordPress
上記3パターンを書いておきたいと思います。
RSS表示(読み込み)サイトと取得先が、同じドメインの場合
参考サイト【jQuery】緊急案件:Google Feed API が廃止になっているので代替案を紹介します。
基本、上記記事でいけました。
デザイン調整のために、htmlタグにクラス名を入れたりはしました。
RSS表示(読み込み)サイトと取得先が、別ドメインの場合
参考サイト【jQuery + PHP】クロスドメイン対応版:Google Feed API の代替案を紹介します。
上記記事を参考にやりました。
自分の場合、掲載したいのはリンク付きタイトルだけで、ディスクリプションは必要なかったので、該当部分のコード「data[i].description.text」は消しました。
具体的には、下記のように変更しました。
コード変更前
1 |
output.find('ul').append('<li><a href="' + data[i].link.text + '">' + data[i].title.text + '</a>' + data[i].description.text + '</li>'); |
コード変更後
1 |
output.find('ul').append('<li><a href="' + data[i].link.text + '">' + data[i].title.text + '</a></li>'); |
また、デザイン調整のためにここからさらにhtmlタグにクラスをつけたりしました。
WordPressで、RSSを取得(読み込み)、表示する場合
基本編
参考サイト【PHP】外部サイトのRSS情報を取得して表示させる方法。
この記事を参考にやりました。
上にも書きましたが、タイトルとリンク以外いらなかったので、必要無いところを削って下記の感じにしました。
1 2 3 4 5 6 7 8 9 |
<?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情報を取得して表示させる方法。
記事数を指定したい場合は、上記記事も参考になります。便利です。
さいごに
備忘録メモエントリーでした。
コメント