WordPressに外部ブログの更新情報を掲載する

Filed under: php,wordpress — kdcs @ 17年12月6日 水曜日

外部で運営中のブログ(アメーバブログ)の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>

サイト内検索

カテゴリー

最近の投稿

« |WordPressに外部ブログの更新情報を掲載する| »
↑上に戻る