WordPressでRSSを取得して、リストとして好きなデザインでレイアウトして表示する方法

PR

WordPressにはRSSを読み込むための仕組みが備わっています

なので、あるていどWordpressのことを知っていたら簡単に導入することが出来ます

また取り出したRSSの情報を制御することが出来るので自由なレイアウトも可能です。

 

どういった使い方ができるかと言ったら、関連するサイトのRSSを表示させる

たとえば、ルートドメインに他のドメインで展開した複数のサイトをまとめるようにするなど、そんな時に便利です

 

ニュースサイトのRSSを取得して、サイトの情報を充実させるなんて使い方も出来ます

 

 

WordPressでRSSを取得して表示する

 

コード

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

$rss = fetch_feed('RSSのURLをここに'); //RSSのURLの指定
if (!is_wp_error( $rss ) ) :
    $maxitems = $rss->get_item_quantity(15); //ここの数値が表示される記事数
    $rss_items = $rss->get_items(0, $maxitems); 
endif;
?>
   <ul>
    <?php if ($maxitems == 0) echo '<li>表示するものががありません</li>';
    else
    foreach ( $rss_items as $item ) : ?>
    <li class="rss-feed">
        <span  class="date"><?php echo $item->get_date('Y.m.d'); ?></span>
        <a href='<?php echo $item->get_permalink(); ?>'title='<?php echo $item->get_title(); ?>'>
        <?php echo $item->get_title(); ?></a>
    </li>
    <?php endforeach; ?>
   </ul>

 

 

$rss = fetch_feed(‘RSSのURLをここに’); ここには取得したいRSSのURLを入れます

$maxitems = $rss->get_item_quantity(15); ここには、取得して表示するRSSの上限をいれます

あとはforeachの間を自由にレイアウトします。RSSから取得できる情報を自由にレイアウトすることが出来ます

 

上のコードでは、get_data(),gete_permalink(),get_title()をRSSから取得しています

ほかにもRSSにある情報も取得して表示することが出来ますが、Wordpressのwikiでは詳しくは書いていませんでしたが

 

  • get_description() 説明文が取得出来ます
  • get_base() トップページのURLを取得
  • Get_permalink() 短縮リンク(記事IDへのリンク)の取得

 

他にもいろいろと取得出来るようですが、動かないものも多数

いろいろ他に手を加えないと行けないのかもしれません

 

すべての取得できる項目はこちらにのっています Gのところにある get_ ってやつがそうです

http://simplepie.org/wiki/reference/simplepie/start

 

WordPressはSimplePieを使ってRSSを取得して表示しています。

PR

COMMENT

  1. 清水

    いつもとても参考にさせて頂いております。

    質問なのですが
    http://simplepie.org/wiki/reference/simplepie/get_author#get_an_author_for_the_feed
    を参考にオーサーと言いますか投稿者を表示したいと考えております。

    このページでご説明頂いているように
    get_title(); ?>でタイトルや日付などの取得は出来たのですが
    google+にてユーザーの名前(オーサー?)の取得表示がわかりません。

    get_title(); ?>
    のtitleを以下を参考に変えただけではダメと言う事でしょうか。

    $feed = new SimplePie();
    $feed->set_feed_url(‘http://simplepie.org/blog/feed/’);
    $feed->init();
    $feed->handle_content_type();

    if ($author = $feed->get_author())
    {
    echo $author->get_name();
    }


    ちなみにサイト名のようなものは
    get_feed()->get_title(); // サイト名 ?>
    で表示できましたが「 名前 – Google+ User Feed」のように英字部分まで表示されてしまいます。
    これが取れるのでも良いのですが。。。
    良い案はありませんでしょうか。

コメントを残す

PR

9ineBBの管理人が運営するサイト

WDG WEB DESIGN GALLERY ウェブデザインギャラリー