ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

WordPressで外部サイトのfeedを取得する@WordPress

最近知ったんですが、外部サイトのfeedを取得するパーサーの「MagpieRSS:RSS for PHP」って、WordPressに同梱されてるんですって!全然知りませんでした。

*なので、これまでは別途用意して組み込んでました。

ということで、WordPressにすでに組み込まれているMagpieRSSを使う場合のメモです。

WordPressで使うのではなく、MagpieRSS単体で使う場合はこちらを参照ください。

blog.showzine.co

WordPressでMagpieRSSを読み込む

wp-includes内のrss.phpを読み込みます。

<?php
include_once(ABSPATH . WPINC . '/rss.php');

ABSPATH、WPINCはwp-config.php(インストール時に生成するWordPressの設定ファイル)で定められている定数で、このおかげでどこから呼び出す(MagpieRSSを)場合も、上記の記述で済むようです。

実際の記述例はこちら。

<?php
include_once(ABSPATH . WPINC . '/rss.php');
$rss = fetch_rss('RSSフィードのURL');
$maxitems = 5; // 読み込む件数
$items = array_slice($rss->items, 0, $maxitems);
?>
<?php if (empty($items)) echo ('<div class="feed">記事がありません</div>');
else
    foreach ( $items as $item ) : ?>
<div class="feed">
    <h2>
        <a href='<?php echo $item['link']; ?>' title='<?php echo $item['title']; ?>'>
            <?php
                $title = $item['title']; // タイトルを取得
                $title = mb_strimwidth($title, 0, 30, "..."); // 文字数を丸める必要がない場合は不要 
                echo $title;
            ?>
        </a>
    </h2>
    <?php 
        $desc = $item['description']; // 概要を取得
        echo $desc;
    ?>
<!-- / .feed --></div>
<?php endforeach; ?>

概要を「description」で指定しているので、WordPressの場合、アイキャッチ画像を使用していてfeed(RSS等)にもアイキャッチ画像を含めている場合にはアイキャッチ画像も概要として取得(表示)されます。

blog.showzine.co

概要ではなく、記事全文(記事内にある画像も含めて)の場合には

$item['description'];

のとろこを

$item['content']['encoded']; // 記事全文を取得

とします。

一歩先にいくWordPressのカスタマイズがわかる本

一歩先にいくWordPressのカスタマイズがわかる本

  • 作者: 相原知栄子,大曲仁,プライム・ストラテジー株式会社
  • 出版社/メーカー: 翔泳社
  • 発売日: 2016/04/09
  • メディア: 大型本
  • この商品を含むブログを見る