フィード配信から取得した更新情報をphpページに掲載

当サイトの更新情報はトップページと、更新履歴専用ページに掲載している。この専用ページはMovable Typeの記事テンプレートで作成しているため都度再構築が必要になるが、インデックステンプレートにあるフィード配信用ファイル(atom.xml)を活用し、phpページに出力することでリアルタイムで反映。

8201.png

更新履歴ページ

掲載したい箇所にコードを記載。ページの拡張子がphpであることが前提。

<ul>
<?php
$RSSpath = "<mt:WebsiteURL>atom.xml";
$XML = simplexml_load_file ( $RSSpath );
foreach ( $XML->entry as $entry ) {
$published = $entry->published;
$title = $entry->title;
$link = $entry->link->attributes ()->href;
echo "<li>$published  <a href='$link'>$title</a></li>";
}
?>
</ul>

atom.xml の各記事に設定された「publish」「title」「link」を拾い、整形して出力(echo)というわけ。日付部分に余計な情報が付いているが、このページはトップページ表示のおまけ扱いなので、更新したと分かって貰えればいいのだ。細かいことは気にしないw

8202.png

フィード配信ファイルへのリンク

ついでに、更新記事一覧の最後に表示させているこの部分について。

8303.png

アイコンはFont Awesomeを利用。サイト全体でこの一箇所でしか使わないので、色も直接styleで指定した。

<a href="/atom.xml" rel="alternate">syndicate this site <span style="color:#ff9933;"><i class="fas fa-rss-square"></i></span></a>

ページ自体をインデックステンプレートで作成したり、日付を整形した別ファイルを作ってincludeする方法もあるが、閲覧頻度を考え無駄を省く方向で。

share