TwitterでWordPressに投稿する方法

気軽に使えるTwitterだけど、タイムラインという川に流してしまうだけじゃ勿体ない。
つぶやきをアーカイブするサービスもあるけど、やっぱり自分の手元でまとめたい。
ってことで、このブログにつぶやきを取り込むべくWordpressのプラグインをあさってみました。
で、たどり着いたのが「Twitter Tools」。
配布サイトはこちら。

WordPressとTwitterを連携させるプラグインで、主だった機能は以下の通り。
●Twitterのつぶやきを、まとめてWordPressに投稿(1日おき、1週間おきの設定が可能)。
●WordPressに書いた記事とそのリンクをTwitterへつぶやく。
●WordPressのサイドバー、Admin画面からつぶやく。

ちょっとσ(^^)が欲しいものとは違う。
つぶやき一つ一つを、さも普通の投稿のようにブログ記事として表示させることがσ(^^)がやりたいこと。

と言うことでこの「Twitter Tools」に手を加えてみました。
まずtwitter-tools.phpの501行目あたり。


		remove_action('publish_post', 'aktt_notify_twitter', 99);
		$tw_text_arr = explode("n", $tweet->tw_text);
		$data = array(
			'post_content' => $wpdb->escape(aktt_make_clickable(tcoDecode($tweet->tw_text)))
			, 'post_title' => $wpdb->escape($tw_text_arr[0])
			, 'post_date' => get_date_from_gmt(date('Y-m-d H:i:s', $tweet->tw_created_at))
			, 'post_category' => array($this->blog_post_category)
			, 'post_status' => 'publish'
			, 'post_author' => $wpdb->escape($this->blog_post_author)
		);

remove_action('publish_post', 'aktt_notify_twitter', 99);はオリジナルのまま。
オリジナルでは、つぶやきの最初30文字をタイトルに充てているところ、最初の改行までをタイトルにするようにしました。
これが$tw_text_arrと$wpdb->escape($tw_text_arr[0])の部分。

つぶやき中の短縮URLを元のURLに展開するため、tcoDecodeと言う関数を作り、投稿記事を$wpdb->escape(aktt_make_clickable(tcoDecode($tweet->tw_text)))として取り込んでいます。

tcoDecode関数はこれ。
twitter-tools.phpの最後に追加しました。


function tcoDecode($contentData) {
	require_once "HTTP/Request.php";
	$http_opt = array( "timeout" => "10","allowRedirects" => false,"maxRedirects" => 3);
	$strPattern = "http://t.co/.+";

	if(preg_match('/'.$strPattern.'/m', $contentData, $matches)>0)
	{
		
		$http = new HTTP_Request($matches[0], $http_opt);
		$response = $http->sendRequest();
		if (!PEAR::isError($response))
		{
			$ret= $http->getResponseHeader();
			$longURL = $ret["location"];
			$contentData = preg_replace("/".$strPattern."/",$longURL,$contentData);
		}
	}
	return str_replace("#blogjp","",$contentData);
}

最後の返しにある置換str_replace("#blogjp","",$contentData)はつぶやき中から#blogjpと言うハッシュタグを削除してます。
つぶやきのすべてをブログに投稿してしまうのも変なんで、この#blogjpというハッシュタグが入ったつぶやきだけ取り込みようにしました。
その部分の改造がtwitter-tools.phpの549行目あたり。


		if (strpos($this->tw_text,'#blogjp')!==false && $aktt->create_blog_posts == '1' && !$this->tweet_post_exists() && !$this->tweet_is_post_notification() && (!$aktt->exclude_reply_tweets || !$this->tweet_is_reply())) {
			$aktt->do_tweet_post($this);
		}


strpos($this->tw_text,'#blogjp')!==falseってのが追加した条件です。

あとはファイルをアップロードし、プラグイン「Twitter Tools」を有効化。
プラグインの設定画面で"Create a blog post from each of your tweets?"を"yes"に、"Category for tweet posts"でつぶやくを投稿するカテゴリを選択します。

これで完了!
どうぞお試しあれ。

LINEで送る
Pocket

u1kuni
  • u1kuni

2件のピンバック

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-spam image

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください