Skip to content
2012/10/15 / Javelina

WordPressで自分のtweetを取得・表示する

メモです。
WordPressでPHPを用いて自分のtweetを取得・表示する方法…というよりも、wp_remote_get()を使ってjsonファイルを読むテンプレートのようなもの。

本家サイトにて、以前はtweetableというプラグインの機能を使って表示していたのですが、その他の主要な機能(ダッシュボードからTLを読む・つぶやく、記事を投稿したら自動でつぶやく等)を全く使用しておらず、さすがに意味ないなと思い始めたのでプラグインの使用をやめて自分で書き直すことにしました。

jsonで取得して、30分毎にキャッシュし直す設定です。
 

function get_mytweets(){
    $transient_key = md5('mytweets');
    if(false === ($mytweets = get_transient($transient_key))){
		$response = wp_remote_get('http://api.twitter.com/1/statuses/user_timeline/' . $twitter_id . '.json');
		if(!is_wp_error($response) && $response['response']['code'] === 200){
			$twitter_id = '自分のtwitterID';/*自分のID*/
			$limit = 5;/*取得したい件数*/
			$term = 0.5;/*キャッシュさせたい時間。単位:hour*/
			$twitter_url = 'http://twitter.com/' . $twitter_id . '/';
			$items = json_decode($response['body']);
			$i = 0;
				foreach($items as $item){
					$tweet_text = $item->text;/*ツイート本文*/
					$tweet_id = $item->id_str;/*ツイートのID*/
					$tweet_date = gmdate('M jS, Y g:i A',strtotime($item->created_at) + 9 * 3600);/*ツイート時間。適宜整形*/
					$reply_user = $item->in_reply_to_screen_name;/*返信相手*/
					if(isset($reply_user)) continue;/*返信ツイートは飛ばす*/
					$tweet .= '<li>';
					$tweet .= '<p>' . $tweet_text .'</p>';
					$tweet .= '<p><a href="'. $twitter_url .'status/' . $tweet_id . '">' . $tweet_date . '</a></p>';
					$tweet .= '</li>';
		            $i++;
					if($i == $limit) break;
				}
		    $mytweets = '<ul>';
		    $mytweets .= $tweet;
		    $mytweets .= '<li><a href="'. $twitter_url . '">もっと読む</a></li>';
		    $mytweets .= '</ul>';
			set_transient($transient_key, $mytweets, 60*60*$term);
		}else{
			$mytweets = '';
		}
	return $mytweets;
}

上記にスタイルなど適宜追加して整形。もし返信も表示したければ16行目と17行目を消します。

これをテーマのfunctions.phpに記入して、あとはサイドバーなど好きな場所で
 

<?php echo get_mytweets();?>

とすればOKです。ラクチンラクチン
 

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。