• ホーム
  • PHP
  • noteのRSSを取得してサイトに表示する

noteのRSSを取得してサイトに表示する

PHP

サイトのブログ機能の代わりとして、noteの記事を表示する方法を記載します。

すでにnoteで記事をたくさん書いている方、WordPressでの投稿が難しい方にお勧めです。

PHPを使用します。

date_default_timezone_set('Asia/Tokyo');

// 取得件数
$max = 5;
$url ="https://note.com/【noteのID】/rss";
// counter
$i = 0;
$output ='';
try {
  // rss読み込み
  $rss =  simplexml_load_file($url);
  if($rss){
    foreach( $rss->channel->item as $item ){

      if($i < $max){
        $timestamp = new DateTime($item->pubDate);
        $date = $timestamp->format('Y年m月d日');
        
        $description = strip_tags($item->description);
        
       
        // no image
        $first_img = $item->children('media',true)->thumbnail;
        if(empty($item->children('media',true)->thumbnail)){
          $first_img ="img/blank.jpg";
        }

        $output .= '<li>';
        $output .= '<a href="'. $item->link .'" target="_blank" class="entry_wrap">';

        $output .= '<div class="entry_thumb"><img src="'.$first_img.'"></div>';
        $output .= '<div class="entry_txt">';

        $output .= '<h4 class="entry_title">' . $item->title . '</h4>';
        $output .= '<time class="entry_date">' . $date . '</time>';
        $output .= '<div class="entry_content">' . $description . '</div>';
        $output .= '</div>';

        $output .= '</a>';
        $output .= '</li>';
        $i++;
      }
    }
    echo '<ul class="note">'. $output . '</ul>';
  }else{
    throw new Exception("xml read error");
  }
}catch(Exception $e){
  echo '<p>ブログが読み込めませんでした</p>';
}

description については必要に応じて文字数カットするなどしてください。

  1. noteのRSSでサムネイルはchildren(‘media’,true)->thumbnail で取得できる
  2. 日付の表記はformat(‘Y年m月d日’);の所を修正する

関連記事