FeedlyのRSS購読者数をWordPressのマルチサイトで個別に取得する

WordPressのマルチサイトでFeedlyの購読者数を各ブログごとに表示する方法です。

FeedlyのRSS購読者数をWordPressのマルチサイトで個別に取得する

SNSのシェア数みたいにFeedlyの購読者数も出たら嬉しいなってことで表示させてるわけですが、技術ブログを分離したのでカウンタが複数必要になりました。

WordPressのマルチサイト機能を使ってメインブログとサブブログ複数運用してる人用のコードです(誰得)。

Feedlyの購読者数を取得する

Feedlyの購読者数は以下の書式で feed の URL を投げると JSON で返ってきます。

http://cloud.feedly.com/v3/feeds/feed%2F{ feedのURL }

ちなみにURL はエンコードしないと無効になります。

【JSON】
{"id":"feed/{ URL }","feedId":"feed/{ URL }",
"language":"ja",
"title":"{ TITLE }",
"velocity":xxx,
"subscribers":xxx, ←これが欲しい
"topics":["{ CATEGORY }"],"website":"{ URL }","contentType":"article","description":"{ STRING }",
"coverUrl":"{ SNS Cover Image }","iconUrl":"{ Favicon }","partial":true,"twitterScreenName":"{ xxxxxx }","visualUrl":"{ Favicon }","coverColor":"{ RGB }","twitterFollowers":xxx,"facebookUsername":"xxxxxx","facebookLikes":xxx}

Feedly購読者数取得コード

【PHP】
<?php // Feedly subscribers
function getFeedly() {
 
  // キャッシュを複数個用意する
  $ozblogID = $GLOBALS['blog_id'];
  if ( false === ( $value = get_transient( 'feedly_trans' .$ozblogID) ) ) {
    $url = urlencode(get_feed_link());
    $feedlyCount = wp_remote_get( 'http://cloud.feedly.com/v3/feeds/feed%2F'. $url , array('timeout' => 0.2)); 
    if ( isset( $feedlyCount ) && !is_wp_error( $feedlyCount ) ) {
      $value = json_decode($feedlyCount['body']) -> subscribers ;
 
      // キャッシュ期間を設定する
      set_transient( 'feedly_trans'.$ozblogID, $value, 60 * 60 * 24 );
    } else {
    $value = '-';
    }
  }
  return $value;
}
?>

Feedly購読者数を取得するコードです。表示はHTML部で関数を呼び出して下さい。

【HTML】
Feedlyの購読者数は <?php echo getFeedly(); ?> 人です

林家次男さんのコードをちょっとだけ拡張しました。キャッシュ期間は24時間に設定してます。お好みに合わせて増減させて下さい。
FeedlyのブログRSS購読者数(フォロワー数)を取得・表示してうれしがる方法を紹介するよ!もちろんWordPressでも

おわりに

当サイトはノンジャンルなので基本的にノイズ記事は存在しない計画だったのですが、SNSでのフォロワー諸氏はWeb制作系の記事に全く興味がないということが判ってきました。

コーダさんがサイエンスに興味ないの判っててネットににょろにょろ出てきてるわけですから、結局アカウントを分けない限りどっちにとってもノイズだったりするのは予見すべきでしたね。(´・_・`)

そんなわけでブログ分けてみましたので、今後も おち研および技術部をよろしくお願いし申し上げます。( ◜ᴗ◝ )