2012 年 3 月 21 日 に投稿されました。内容が現状と相違がある点等にご注意願います。
2014 年以前の画像の一部、スクリーンショットは表示されません。ご了承ください。

アメーバブログの RSS フィードを取得、PR の削除、記事内容の抜粋をする

アメーバブログ (アメブロ) の投稿投稿の一部を抜粋し、WordPress の固定ページに一覧表示をさせる機会があったので、メモとして残しておく。

今回は WordPress 3.0 から非推奨となった rss.php を使用せず、/wp-include/class-simplepie.php を使用して外部 RSS フィードの取得を行うこととし、それに当たって以下のウェブサイトを参考にした。

外部 RSS フィードの取得・表示 2: WordPress | FindxFine -Web 制作に関するメモ-

紹介されている内容に加えた処理は、以下の通り。

  • 投稿年月日の取得、表示
  • アメブロの RSS に表示される PR の削除

サンプルページは以下をご覧ください。

class-simplepie.php を使用したアメーバブログの RSS フィード取得、PR の削除、投稿内容の抜粋 [サンプル]

※アメーバブログより削除のため、非公開

プログラマーではないため、冗長な部分があるかと思うが、ご了承ください。
なお、CSS の指定は削除したので、適宜、追加をしてください。

以下は、プラグイン Exec-PHP をインストール、投稿または固定ページに記述をしている。

<?php
include_once(ABSPATH . WPINC . '/class-simplepie.php');
$feed = new SimplePie();
$feed->set_feed_url('http://rssblog.ameba.jp/xxxx/rss20.xml');
$feed->enable_cache(false);
$feed->init();
$items = $feed->get_items(0, 10);
?>
<?php if (empty($items)) : ?>
投稿が存在しないか、または不具合が発生している可能性があります。
<?php else: ?>
<?php foreach ($items as $item) : ?>
<?php $title = $item->get_title(); if (strpbrk($title, 'PR: ')) : ?>
<?php echo ""; ?>
<?php else: ?>
<?php echo $date = $item->get_date('Y.m.d'); ?>
<h2><a href="<?php $link = $item->get_link(); echo $link; ?>"><?php echo $title; ?></a></h2>
<?php $description = $item->get_description(); echo strip_tags(mb_substr($description, 0, 300)); ?>
<a href="<?php $link = $item->get_link(); echo $link; ?>" target="_blank">続きを読む…</a>
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>

コードの説明は、7 行目にある「10」が投稿の取得数になる。
ただ、取得数から PR を削除するので、表示数は PR を差し引いた数になる。この処理は改善をしたいところ (友人に聞くか…)
13、14 行目ではタイトルに「PR:」を含む RSS フィードの削除、16 行目では日付の取得を行っている。
18 行目にある「300」が投稿より抜粋をする文字数 (1 バイト換算) になる。

今回の内容を必要とする機会はそれほどないと思うが、class-simplepie.php を使用することで簡単に RSS フィードの取得をすることができる。

先頭に戻る