blog.hakozu.me

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

アメーバブログ (アメブロ) の投稿記事の一部を抜粋し、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 フィードの取得をすることができますね。

関連しそうな商品

関連しそうな記事

コメント