WordPressでInstagramの写真を表示する

      2017/02/08

WordPressでInstagramの写真を表示するメモです

Instagramは公式のWebAppが用意されていないので、PCのブラウザから利用(TLの閲覧、コメント・返信、タグ付など)する場合は、現状サードパーティー製のWebサービスを使います。
参照:WordPressで自分のInstagram(Statigram)の写真を取得・表示する

プラグインを使おうと思ったのですが、コードの説明がなかったりまだ3.5に対応してなかったりと良し悪しだったので上記サイトを参考にワードプレスにインスタグラムに投稿した画像を表示する方法を用いました。

function.phpに設定を記述

function get_igphotos(){
    $transient_key = md5('igphotos');
    if(false === ($igphotos = get_transient($transient_key))){
		$ig_id = 'InstagramのID';/*自分のID*/
		$limit = 9;/*取得したい件数*/
		$term = 1;/*キャッシュさせたい時間。単位:hour*/
		$response = wp_remote_get('http://statigr.am/feed/' . $ig_id);
		if(!is_wp_error( $response ) && $response["response"]["code"] === 200){
			$ig_body = simplexml_load_string($response["body"]);
			$i = 0;
			foreach($ig_body->channel->item as $item){
				$i++;
				$igphotos .= strtr($item->description,array('_7.'=>'_5.'));/*写真をサムネイルサイズに変更*/
                if($i == $limit) break;
			}
			set_transient($transient_key, $igphotos, 60*60*$term);
		}else{
			$igphotos = '';
		}
	}
	return $igphotos;
}

設置したいところに記述

<!--?php echo get_igphotos();?-->

設置自体は難しくないんだけどキャッシュが時間単位(hour)なので修正してすぐ反映させたいときじれったいwww
でもウィジェット設置しまくってサイト重くしたくないし(プラグインも然り)
常に更新してる部分があるというだけでもサイトの気分転換になっていいですね。

つぎはタンブラーも反映させたい。

 - Instagram, WordPress