Posted by をかもと at 2010年7月4日 日曜日

WordPress のコメントに TwitterはてなブックマークDelicious での言及を混ぜ込むプラグイン Feedback Champru を作成しました。
作成の経緯とインストール方法は、おでこんがまとめてくれたので、そちらをご参照ください。
WordPress のコメントに Twitter やはてブのフィードバックを追加する Feedback Champuru を入れてみた | Odysseygate.com

基本的にダウンロードしてきたファイルを wp-content/plugins/ に放り込んで、有効にすれば使えるようになります。
ただし、内部で json_decode() 関数を使用しているので、PHP 5 以降が必須となります。
各コメントには、それぞれ tweet, hatena, delisious というクラスが付与されるので、style.css を修正して良い具合に見た目を変更してやってください。
ダウンロードは、以下からどうぞ。
WordPress > Feedback Champuru « WordPress Plugins

さて、ここからはプラグイン内部の説明
Twitter、はてなブックマーク、Delisious での言及を取得する方法ですが、それぞれ各サービスのAPIを使用して取得しています。

  • Twitter
    TopsyのAPIを使用して、対象ページに対する言及を取得。
    具体的には以下の URL を叩いて json 形式で情報を取得しています。
    http://otter.topsy.com/trackbacks.json?url=ブログエントリのパーマリンク&tracktype=tweet&perpage=50
    取ってきたデータは json_decode() 関数でパースしてから、WordPress の comments_array フィルターフックを使って、コメントに混ぜ込んでます。
  • はてなブックマーク
    はてなブックマークのAPIを使用して、対象ページに対する言及を取得。
    具体的には以下の URL を叩いて json 形式で情報を取得しています。
    http://b.hatena.ne.jp/entry/json/?url=ブログエントリのパーマリンク
    後は一緒。
  • Delisious
    DeliciousのAPIを使用して、対象ページに対する言及を取得。
    具体的には以下の URL を叩いて json 形式で情報を取得しています。
    http://feeds.delicious.com/v2/json/url/MD5したブログエントリのパーマリンク
    後は一緒。

すべてサーバ側でやるので KtaiStyle や WPTouch で、ケータイやスマートフォン向けに別のページを表示してる場合でも問題なく表示されます。

また、このプラグインにはいくつかのフィルターフックを追加しておきました。
これらを使用することで、このプラグインの振る舞いを変更することができます。
使用できるフィルターフックは、以下のとおり。

  • feedback-champuru/comment_type
    取得してきたデータを通常のコメントとして扱うか、trackback、pingback として扱うかを変更できます。
  • feedback-champuru/get_feedback
    Twitter、はてなブックマーク、Delisious 以外のデータも扱いたい場合は、このフィルターフックを使用してください。
  • feedback-champuru/comments_arrayfeedback-champuru/content
    取得してきたデータを編集したいときに使えるフィルターフックです。
  • feedback-champuru/cache_expired
    デフォルトではデータ取得は30分に一回行いますが、このフィルターフックを使用することでデータ取得間隔を変更できます。

例えば、以下のようなコードをテーマの functions.php に書いておくと特定のユーザからの言及に付いては、表示しないようにできます。
セルクマ表示されると嫌だなぁ、とかって時に使ってください。

function champru_comments($comments_array, $type){
		$comments = array();
		foreach ($comments_array as $comment) {
			switch ($type){
			case 'tweet':
			case 'hatena':
			case 'delicious':
				if ($comment->comment_author != 'wokamoto')
					$comments[] = $comment;
				break;
			default:
				$comments[] = $comment;
				break;
			}
		}
		return $comments;
}
add_filter('feedback-champuru/comments_array', 'champru_comments', 10, 2);

これで、wokamoto っていうユーザーからの言及は表示されなくなります。

他のフィルターフックの使い方は、ソースを眺めてください。

Ver.0.2.0 から、<?php feedback_type(); ?> というテンプレートタグを追加しました。
これは、表示しているコメントの種類によって、以下のような文言を表示するテンプレートタグです。

  • 通常のコメント – コメント
  • 通常の pingback – ピンバック
  • 通常の trackback – トラックバック
  • Twitter での Tweet – Tweet
  • はてなブックマークでのコメント – はてなブックマーク
  • Delisious でのコメント – Delisious

トラックバック & ピンバック » 表示する

コメント

  • twitter 2010年7月4日 日曜日 1:35 AM

    ブログにエントリ: Feedback Champru – WordPress のコメントに Twitter、はてなブックマーク、Delicious での言及を混ぜ込むプラグイン… http://bit.ly/9FxBHR [twicco.jp @wokamoto ]

  • JAPAN Mac OS Mozilla Firefox 2010年7月4日 日曜日 11:12 AM

    json_decode() は WordPress 2.9 以降なら compat.php で定義されてるので、PHP 4 系でも大丈夫かも。

    http://core.trac.wordpress.org/browser/tags/2.9.2/wp-includes/compat.php#L139

    • JAPAN Ubuntu Linux Mozilla Firefox 2010年7月4日 日曜日 4:46 PM

      miyoshi さん、どもです。

      ホントだ!json_decode()は、WordPress が実装してくれてるんですね。
      PHP4系へも対応させるのは、そんなに面倒じゃないかも。
      情報サンクスです。

  • JAPAN Ubuntu Linux Mozilla Firefox 2010年7月4日 日曜日 11:21 AM

    にいさん、早速使わせていただいてます。 :-D

    ところで、コメントを判別する comment_type みたいなものはどう書いたらいいでしょう?
    「○○さんのツイート」とか振り分けたいのですけどね。いろいろとやってみましたが、そんなの知らねーよと言われます。orz

    なにとぞ一つ、お願いします。 :-(

    • JAPAN Ubuntu Linux Mozilla Firefox 2010年7月4日 日曜日 4:49 PM

      Masayan どもです。

      実は $comment->comment_type は、通常のコメントと同じになってます。
      見分けるには $comment->comment_ID を見ればおっけ。
      #twitter なら、tweet-xxx になってます。
      後で簡単に取得するためのテンプレートタグを用意しますね。

      あと、まだ正式リリースしてませんが Commenters Info の次期バージョンで、Twitter、Hatena Bookmark、Delisious のアイコンを表示するようにします。
      とりあえず版をここに置いておきますので、入れ替えてください。
      http://dl.dropbox.com/u/110305/commenters-info.0.6.3.zip

  • twitter 2010年7月4日 日曜日 11:44 AM

    Feedback Champru : dogmap.jp http://ff.im/-n9S13

  • JAPAN Windows Mozilla Firefox 2010年7月7日 水曜日 11:13 AM

    にいさん、こんにちは。

    今wp.Vicuna Ext. Customというテーマを使ってるんですが、うまく表示できません。
    何かテンプレートタグを付け足さないとだめでしょうか?

    他のテーマだと大丈夫なので、Vicuna特有の問題かなぁと思うのですが。

    • JAPAN Windows Mozilla Firefox 2010年7月7日 水曜日 12:40 PM

      satchin どもです。

      今 wp.Vicuna Ext. Custom というテーマを使ってるんですが、うまく表示できません。
      何かテンプレートタグを付け足さないとだめでしょうか?

      他のテーマだと大丈夫なので、Vicuna特有の問題かなぁと思うのですが。

      wp.Vicuna Ext. Custom のソースを眺めてみました。
      このテーマでは、コメントを取得する時に WordPress 標準の機能を使わずに独自に SQL 文を発行しているため、Feecback Champru プラグインが取得してきたデータを混ぜ込むことができません。

      この辺の問題を修正した wp.Vicuna Ext. Custom 用の comments.php を以下に置いておくので、入れ替えてください。
      この comments.php を使えば、正常に表示されるはず。
      http://dl.dropbox.com/u/110305/WordPress%20themes/wp.vicuna.exc/comments.php

      • JAPAN Windows Mozilla Firefox 2010年7月7日 水曜日 12:57 PM

        Dも送りましたが、にいさんのと差し替えたらバッチリでした。
        時々Vicunaの独自仕様に悩まされるんですよねぇ。
        お手数おかけしました。
        ありがとでした :-D

  • twitter 2010年7月8日 木曜日 9:59 AM

    WordPress のコメントに Twitter、はてなブックマーク、Delicious での言及を混ぜ込むプラグイン。wp.Vicuna Ext. Customだとそのままでは表示できないので、をかもとさんにテーマを修正していただいた… http://htn.to/f8GGTV

  • hatena bookmark 2010年7月8日 木曜日 9:59 AM

    WordPress のコメントに Twitter、はてなブックマーク、Delicious での言及を混ぜ込むプラグイン。wp.Vicuna Ext. Customだとそのままでは表示できないので、をかもとさんにテーマを修正していただいたものを使っています。

  • twitter 2010年7月9日 金曜日 2:58 PM

    この機能を使いたいがためにWordpressを今から立ち上げて遊ぼう! http://dogmap.jp/2010/07/04/feedback-champru/

  • twitter 2010年7月11日 日曜日 11:23 PM

    PHPとJSONとWordPressに関する@takayukisterさんの会心のコメント ”json_decode() は WordPress 2.9 以降なら compat.php で定義されてる” http://goo.gl/P1fR

  • twitter 2010年7月12日 月曜日 1:49 PM

    http://bit.ly/dnOb8k Feedback Champru : dogmap.jp

  • twitter 2010年7月17日 土曜日 10:50 AM

    やべえこれがいまツボった!>例えば、以下のようなコードをテーマの functions.php に書いておくと特定のユーザからの言及に付いては、表示しないようにできます。
    http://dogmap.jp/2010/07/04/feedback-champru/

  • twitter 2010年7月22日 木曜日 2:27 PM

    説明文通りにしたら無事自分のツイートが除外出来ました。RT @wokamoto: Feedback Champru – dogmap.jp http://dogmap.jp/2010/07/04/feedback-champru/

  • twitter 2010年8月1日 日曜日 8:27 PM

    Feedback Champru: WordPress のコメントに Twitter、はてなブックマーク、Delicious での言及を混ぜ込むプラグイン Feedback Champru を作成しました。… http://dlvr.it/3GFJq

  • delicious 2010年8月12日 木曜日 3:32 AM

    wp.Vicuna Ext. Customではそのままでは機能しないらしい。コメ欄に書いてあるから要チェック。

    947
  • hatena bookmark 2010年8月13日 金曜日 10:33 AM

    テストしてみようっと。

  • twitter 2010年8月13日 金曜日 10:34 AM

    テストしてみようっと。 / Feedback Champru : dogmap.jp http://htn.to/i1c5Q

  • twitter 2010年8月15日 日曜日 2:23 PM

    ブログに関するツイートを、ブログのコメント欄に転載するプラグインを導入しました( @wokamoto さん作「Feedback Champru」。 http://ow.ly/2pJKl )。このところ閑散としているコメント欄に、いくらか活気が出るでしょう。

  • twitter 2010年8月25日 水曜日 9:33 AM

    WPコメント拡張プラグイン。 / Feedback Champru : dogmap.jp http://j.mp/do0dXv

コメントする


Twitter ID を入力すると新しいコメントがあった際、 @dogmap_jp が、あなた宛に@リプライでお知らせします。

入力いただいたメールアドレスから、TwitterGravatar に登録されているアイコンを表示します。
(メールアドレスは公開されません)

改行と段落タグは自動で挿入されます。メールアドレスは表示されません。

:mrgreen: :-P :-D :-) ;-) :-o :-| :-( 8-O :-? 8-) :twisted: :evil: :oops: :roll: :cry: :lol: :-x more »