外部で運営中のブログ(アメーバブログ)のfeedから情報を取得し
WordPressのページに更新情報を掲載する方法をphpで行う
※PR(広告記事は除外する)amebloIDの部分を書き換える
<?php
include_once(ABSPATH . WPINC . '/feed.php');
$display_posts_count = 5;
$get_posts_count = 10;
$ameblo_feed = fetch_feed('http://rssblog.ameba.jp/AmebloID/rss20.xml');
$counter = 0;
if (!is_wp_error( $ameblo_feed ) ) :
$maxitems = $ameblo_feed->get_item_quantity($get_posts_count);
$feed_items = $ameblo_feed->get_items(0, $maxitems);
endif;
?>
<ul>
<?php if ( $feed_items == 0 ) echo '<li>新しい記事はありません</li>';
else
foreach ( $feed_items as $item ) :
if( !preg_match('/^PR:/', $item->get_title() ) && $counter < $display_posts_count ):
?>
<li>
<span><?php echo $item->get_date('Y.m.d'); ?></span><br>
<a href="<?php echo $item->get_permalink(); ?>" target="_blank"><?php echo $item->get_title(); ?></a>
</li>
<?php
$counter++;
endif;
endforeach;
?>
</ul>
複数のブログから取得する場合
<?php
include_once(ABSPATH . WPINC . '/feed.php');
$display_posts_count = 20;
$get_posts_count = 40;
$ameblo_feed = fetch_feed(array(
'http://rssblog.ameba.jp/AmebloID/rss20.xml', // feed1
'http://rssblog.ameba.jp/AmebloID/rss20.xml', // feed2
'http://rssblog.ameba.jp/AmebloID/rss20.xml' // feed3
));
$counter = 0;
if (!is_wp_error( $ameblo_feed ) ) :
$maxitems = $ameblo_feed->get_item_quantity($get_posts_count);
$feed_items = $ameblo_feed->get_items(0, $maxitems);
endif;
?>
<ul>
<?php if ( $feed_items == 0 ) echo '<li>新しい記事はありません</li>';
else
foreach ( $feed_items as $item ) :
if( !preg_match('/^PR:/', $item->get_title() ) && $counter < $display_posts_count ):
?>
<li>
<span class="date"><?php echo $item->get_date('Y.m.d'); ?></span><br>
<span class="title">【<?php echo $item->get_feed()->get_title(); ?>】</span><br>
<a href="<?php echo $item->get_permalink(); ?>" target="_blank"><?php echo $item->get_title(); ?></a>
</li>
<?php
$counter++;
endif;
endforeach;
?>
</ul>
facebookの場合
<?php
include_once(ABSPATH . WPINC . '/feed.php');
$fb_feed = fetch_feed('http://www.facebook.com/feeds/page.php?format=rss20&id=FacebookID');
if (!is_wp_error( $fb_feed ) ) :
$maxitems = $fb_feed->get_item_quantity(5);
$rss_items = $fb_feed->get_items(0, $maxitems);
endif;
?>
<ul>
<?php if ($maxitems == 0) echo '<li>新しい記事はありません</li>';
else
foreach ( $rss_items as $item ) : ?>
<li>
<span><?php echo $item->get_date('Y.m.d'); ?></span><br>
<a href="<?php echo $item->get_permalink(); ?>" target="_blank"><?php echo $item->get_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>