PHPでアメブロの新着記事一覧をRSSフィードから取得するコード

2019年12月24日PHP

PHPでアメブロの新着記事一覧をRSSフィードから取得するコード

クライアント様のWEBサイトをリニューアルなどで再構築する際、「外部で既に運用しているブログ(アメブロ等)の新着情報をWEBサイトに表示させたい!」との相談が稀にあります。

今回はPHPでアメブロの新着記事一覧をRSSフィードから取得するコードを簡潔にご紹介します。

アメブロのRSSを読み込むPHPコード

まずは下記コードをそのままPHPの表示したい部分にコピーしてください。

<?php
//読み込みたいRSS FeedのURL
$RSSpath = "http://rssblog.ameba.jp/[アメブロID]/rss20.xml";
 
$XML = simplexml_load_file($RSSpath);
$return_html = "<ul>";
$entry_date = "";
$i = 0;
foreach($XML->channel->item as $entry) {
    if($i >= 5) { //表示したい件数 5件
        break;
    }else{
        $title = $entry->title; //【記事タイトル】
        $entry_date = date('Y年m月d日', strtotime($entry->pubDate)); //【投稿日】
        $link = $entry->link; //【記事リンク】

        //出力する html
        $return_html.='<li>・<span class="top-date">'. $entry_date.'</span>&nbsp;<a href="'.$link.'" target="_blank">'. $title.'</a></li>';
        $i++;
    }
}
$return_html .= "</ul>";
echo $return_html;
?>

ご自分の環境に合わせて、コード内の編集が必要な部分を適宜変更します。

コードの解説

① 3行目:読み込むRSSフィードを指定

コード3行目の$RSSpathに、読み込みたいRSSフィードのURLを文字列として格納します。
ブログ毎のRSSフィードはhttp://rssblog.ameba.jp/[アメブロID]/rss20.xmlで出力されています(正常に出力されているか、ブラウザで一度確認されることをオススメします)。

例:http://rssblog.ameba.jp/tao-tsuchiya/rss20.xml
↑Google Chromeの場合、画像のようにRSSフィードのコードが表示されればOKです。

RSS Feed(Google Chrome)
RSS Feed(Google Chrome)

② 10行目:表示したい件数を指定

10行目のif条件式に、表示したい新着記事の件数を指定します。

③ 13〜15行目:取得したい項目を変数に格納

上記コードの13〜15行目では、RSSフィードに設定されている記事のタイトル・投稿の日付・記事リンクをそれぞれ変数に格納しています。

アメブロではそれ以外にも、記事の本文の一部を$entry->descriptionで取得できます。必要であれば任意の変数を用意し、取得してください。

④ 18行目:出力するHTMLをまとめる

③で取得した各項目の変数とHTMLタグを連結させ、ひとつの文字列として$return_htmlにまとめます。このPHPコードでは最終的に下記のHTMLコードとして出力されます。

<ul>
    <li>・<span class="top-date">2017年1月1日</span><a href="◯◯◯" target="_blank">[記事のタイトル]</a></li>
    <li>・<span class="top-date">2017年1月1日</span><a href="◯◯◯" target="_blank">[記事のタイトル]</a></li>
    <li>・<span class="top-date">2017年1月1日</span><a href="◯◯◯" target="_blank">[記事のタイトル]</a></li>
</ul>

こちらも導入する環境によって適宜コードを変更します。

DEMO

下記のようにアメブロの新着記事が一覧で表示されれば完了です。

» アメブロの新着記事を表示するデモページはこちら

おまけ:HTMLファイルに表示したい場合

RSSを読み込むだけのPHPファイルを作り、HTMLに埋め込む

静的なHTMLファイルに新着RSSを表示したい場合は、当記事のPHPコードだけを記述したPHPファイルを単体で用意し、HTMLにインラインフレームで埋め込み、またはjQueryの.load()関数で指定した場所に読み込みます。

<script>
    $(function(){
        $('#feed').load('RSSフィードを読み込んだphpファイルまでのパス');
    });
</script>

これで<div id="feed"></div>の中に新着記事一覧が表示されるようになります。

jQueryだけでRSSフィードを取得

上記のPHPファイルで埋め込む方法が手間な場合は、jQueryだけでもRSSフィードを読み込むことができます。こちらはまた別の記事でご紹介しようと思います。

まとめ

比較的古いやり方であることは承知の上でご紹介していますが、例えば何らかの理由でjQueryが使用できないが、サーバー的にPHPは使える場合など限定的な状況で使えそうなのでご紹介しました。SEO的なことを無視すれば、インラインフレームでこのPHPを読み込めばひとまず実現は可能です。

また今回はアメブロの新着RSSの読み込みをご紹介しましたが、XMLの構造を理解していれば他の外部ブログ(FC2ブログやMTのブログなど)の新着情報も表示可能です。ぜひ一度使ってみて下さい。