つながるnet

外部ブログのRSSフィードを表示(広告はスキップ)

外部ブログのRSSフィードを表示するために fetch_rss() fetch_feed() という関数がちゃんと準備されています。
トップページやサイドバーに表示して、外部ブログとの連携を取ることができます。

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

$rss = fetch_feed('http://example.com/rss/feed/goes/here');// 配列にすれば、複数のRSSフィードを同時に取得することも可能
if (!is_wp_error( $rss ) ) :
    $maxitems = $rss->get_item_quantity(5); // カッコ内は取得する件数
    $rss_items = $rss->get_items(0, $maxitems);
endif;
?>

<dl>
    <?php if ($maxitems == 0) echo '<dt>フィードを取得できませんでした</dt>';
    else
    foreach ( $rss_items as $item ) :
    $link = $item['link'];
    //RSSには[PR]などで始まる宣伝が含まれることがあるので、それはスキップ
    //表示したいブログのリンク文字列にあるはずの文字列を下記スラッシュ(/)の間に記入すると、
    //リンクURLにその文字列が含まれていない場合(つまり広告リンク)、そのフィードはスキップ
    if ( !preg_match("/example.com/",$link) ) continue;//宣伝リンクはスキップ
    //日付を取得しますが、フィードの書式に注意。次の2行のいずれかで取得できる。
    //できない場合は$itemがどのような形式でデータを持っているかを確認。(var_dump($item))
    $upDt = date('Y.m.d',strtotime($item['pubdate']));
    if ($upDt == "1970.01.01") $upDt = date('Y.m.d',strtotime($item['dc']['date']));
    ?>
    <dt><?php echo $upDt ?></dt>
    <dd><a href='<?php echo $link; ?>' title='<?php echo $item['title']; ?>' target="_blank"><?php echo $item['title']; ?></a></dd>
    <?php endforeach; ?>
</dl>

ちょっと見栄え良くcssを。参考まで。
・枠とスクロールバーを表示
・日付を左、タイトルをその右に表示
・フィード間を点線で区切る

<style type="text/css">
<!--
dl { /* 高さを指定してスクロールバーを表示 */
 height:100px;
 overflow:auto;
 border:solid 1px #CCC; /* 枠で囲む */
 padding:10px;
}
dt { /* 日付の幅を指定して左に寄せる */
 width:80px;
 float:left;
 padding-left:5px;
}
dd { /* 記事タイトルを日付の右側に */
 padding-left:80px;
 padding-right:5px;
 padding-bottom:5px;
 margin-bottom:5px;
 border-bottom:dotted 1px #CCC; /* フィードの下は点線で次のフィードと区切る */
}
-->
</style>

直接メールしてみる

お名前 (必須)
メールアドレス (必須)
件名
ご相談内容
画像文字をご入力ください
captcha

コメントを残す