Webデザイン

他のWordPressサイトのRSSフィードを取得して更新情報を表示させる

他のWordPressサイトのRSSフィードを取得して更新情報を表示させる

どうもこんにちは。
Web/App/UIデザイナーのサトウです。

今回は、他のWordPressサイトのRSSフィードを取得して更新情報を表示させる方法について書いていきます。

他のWordPressサイトの更新情報を表示させたい

ある認定こども園を運営されている継続のクライアントがいらっしゃるのですが、そのクライアントから「園のサイトトップに職員ブログの更新情報を表示させたい」というご依頼をいただきました。

園のサイト内部に投稿やカスタム投稿タイプでブログを作られていれば簡単な話だったのですが、園のサイトと職員ブログが別々のWordPressで制作されているため、職員ブログのRSSフィードを取得して園のサイトに更新情報を表示させる方法を取りました。
WordPressにはfeed.phpというRSSフィードを取得成形してくれるphpファイルが用意されているので、それを使います。

functions.phpに下記のように記述し、フィードの取得と出力の準備をします。

<?php
// 他のWordPressサイトのRSSフィードを取得して更新情報を表示させる
function my_feed_display($feedURL, $num){
  date_default_timezone_set("Asia/Tokyo");
  $newdays = strtotime('-7 day'); //「new」アイコンをつける日付条件を指定
  if(!$feedURL){return false;}
  if(!$num){$num = 5;}
  include_once( ABSPATH . WPINC . '/feed.php' ); //feed.phpを呼び出す
  $rss = fetch_feed( $feedURL );
  if ( !is_wp_error( $rss ) ) {
    $maxitems = $rss->get_item_quantity($num);
    $rss_items = $rss->get_items( 0, $maxitems );
  }
  if ( !empty( $maxitems ) ) {
    if ($maxitems == 0){
      echo '表示できる投稿がありません。';
    } else {
      foreach ( $rss_items as $item ){
        $itemlink = $item->get_permalink(); //パーマリンクを取得
        $itemtitle = $item->get_title(); //記事のタイトルを取得
        $itemtime = $item->get_date('Y年n月j日'); //記事の投稿日を取得
        $itemtimestamp1 = $item->get_date('',''); //Newアイコン判別用の記事投稿日を取得
        $itemtimestamp2 = strtotime($itemtimestamp1);  //記事投稿日のタイムスタンプを取得
        if ( $itemtimestamp2 > $newdays ) {  //記事投稿日とNewアイコンの条件を比較して条件分岐
          $newicon = '<span>New</span>';
        } else {
          $newicon = '';
        }
          echo '<p class="clearfix"><span class="news_date">'.$itemtime.'</span><a href="'.$itemlink.'" target="_blank" rel="noopener">'.$itemtitle.'</a>'.$newicon.'</p>';
      }
    }
  }
}

更新情報を出力したい場所に下記のように記述し、出力します。
カッコの中は取得したいフィードのURLと件数です。

<?php my_feed_display('feed-url','5'); ?>

フィードを取得する対象がWordPressではなく他のブログサービスやnoteなどのサービスでも、この方法でフィードを取得して更新情報を表示させることができます。

さて、今回は、他のWordPressサイトのRSSフィードを取得して更新情報を表示させる方法について書いてみました。
いかがだったでしょうか?
読んでくださったあなたの参考に少しでもなれば嬉しいです。
それではまた次回。