WordPress Tips
テンプレートタグを「どんな目的で、どのように」記述しているか、実際に使用しているタグのTips集です。記述ミスがありましたらご容赦ください。

最新更新情報の一覧を表示 ( 外部サイト編 )

CATEGORY : テンプレートタグ使用例 | UPDATE : 2009.07.14

WordPress を複数インストールしている場合や、外部サイトの最新情報は RSS を取得して表示します。
「Illustratorのツボ」は adphic.jp の中に、別の WordPress がインストールされています。また「IWAKI-MachiNavi」は、ドメインが異なる別サーバーに設置されている外部サイトです。いずれも RSS を利用して更新情報を表示しています。

1 : ポイントは RSS のアドレスを間違えないこと
下のタグで「Illustratorのツボ」の更新情報を表示しています。
■RSSのアドレスを書き換えてテンプレートタグへ記述
<?php // Get RSS Feed(s)
include_once(ABSPATH . WPINC . '/rss.php');
$rss = fetch_rss('http://www.adphic.jp/ai/?feed=rss2');
$maxitems = 5;
$items = array_slice($rss->items, 0, $maxitems);
?>
<ul>
<?php if (empty($items)) echo '<li>No items</li>';
else
foreach ( $items as $item ) : ?>
<li><a href='<?php echo $item['link']; ?>'
title='<?php echo $item['title']; ?>'>
<?php echo $up = date('Y.m.d',strtotime($item[pubdate])); ?> <?php echo $item['title']; ?>
</a></li>
<?php endforeach; ?>
</ul>
※http://www.adphic.jp/ai/?feed=rss2 の部分を書き換えで記述します。
  • $rss : RSS までのアドレスを入れます。WP で構築しているサイトなら、トップページのアドレスに ?feed=rss2 を加えるだけで表示されます。
    うまく表示できない場合は Firefox でサイトのトップページを表示し、RSS アイコンの「'RSS 2.0' を購読...」で表示されるアドレスを入れてみてください。
  • $maxitems : 表示件数を5件で設定しています。記事が存在しない場合は No items と表示します。
  • $up : 更新日時を取得。年月日をカスタマイズする場合は 'Y.m.d' を変更します。更新日とタイトルの間に全角スペースを入れています。
※レンタルブログや外部サイトも RSS のアドレスを間違えなければ、このタグで表示可能なはずです。
※<ul><li>〜 </li></ul> でリスト表示していますので、この部分は CSS でデザインを設定してください。
※このタグは、上記のサイトなどを参考にさせていただき作成しています。
2 : 表示条件を指定できないのが難点です
同一サイトの更新情報のように、カテゴリーや表示条件を指定できないのがこのタグの難点です。PHP に精通した方なら可能なのでしょうが、残念ながらそれだけのスキルはありません。
表示させたくない記事は、更新日を変更するなどの方法で対処しています。
3 : WordPress以外のサイトを表示する
上の方法だと WordPress 以外のサイトでは、うまく更新日時が取得できないようなので、記事を追加しました。
下記の方法なら更新日時が取得できるようです。
<?php
include_once(ABSPATH . WPINC . '/rss.php');
$rss = fetch_rss('http://www.adphic.jp/ai/?feed=rss2');
$maxitems = 5;
$items = array_slice($rss->items, 0, $maxitems);
?>
<ul>
<?php if (empty($items)) echo '<li>No items</li>';
else
foreach ( $items as $item ) : ?>
<li>
<a href="<?php echo $item['link']; ?>" title="<?php echo $item['title']; ?>">
<?php echo $up = date('Y.m.d',strtotime(substr($item['dc']['date'],0,10))); ?> 
<?php echo $item['title']; ?>
</a>
</li>
<?php endforeach; ?>
</ul>
※http://www.adphic.jp/ai/?feed=rss2 の部分を書き換えで記述します。
このタグは、上記参考サイトの WordPress 日本語・フォーラムに掲載された、digitalix さんのタグをそのまま転載させてもらいました。