Feedback Champru

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

Feedback Champru」への24件のフィードバック

  1. りゅう・д・

    アイコンがキャッシュされません。
    オプション、プラグインの再インストール、PHPのバージョン、ディレクトリの存在、パーミッション等、
    色々と試しましたが、キャッシュ機構がまったく働いていない状態です。
    何か思い当たる節はありますでしょうか。

    返信
  2. けんつ

    はじめまして。

    素晴らしいプラグインを作成していただき、ありがとうございます。
    とても有り難く使わせていただいております。

    1つ要望がございます。
    リツイートの表示、非表示を選択できる機能を付けていただきたく存じます。
    可能であれば、ぜひお願いいたします。

    返信
  3. ピンバック: テーマの functions.php を書き換えずに WP プラグインを開発! | ZERO BASE

  4. ピンバック: WordPress の functions.php を変更したらアクセスできなくなった! | ZERO BASE

  5. ピンバック: single.phpを少しカスタマイズ | ツブヤキ。

  6. ピンバック: BTCNew から Feedback Champuru へ変更してみた! | ZERO BASE

    1. をかもと 投稿作成者

      さいとうさん、はじめまして。

      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

      返信
  7. ピンバック: コメント欄でのtwitterとの連携について。 | 採集防衛ライン

  8. ピンバック: Zenbackの代わりになる3つのプラグイン+1 | NANOKAMO BLOG

  9. takapon

    Feedback Champruとても便利に利用させて頂いています。
    しかし、はてブの表示が調子悪いです 😥 現在はHatena bookmark anywhere (はてブコメント表示)を併用しています。

    返信
    1. をかもと 投稿作成者

      takapon さん、どもです。

      はてブですが Feedback Champuru では、コメントがあるときだけ表示しています。
      タグ付けのみされた場合は表示されません。
      そのせいで、表示されないのでは無いでしょうか?

      返信
  10. ピンバック: 道道つれづれ線

  11. ピンバック: ワタシの今の環境を晒してみるよ - LOVE!?

  12. satchin

    にいさん、こんにちは。

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

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

    返信
    1. をかもと 投稿作成者

      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

      返信
      1. satchin

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

        返信
  13. Masayan

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

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

    なにとぞ一つ、お願いします。 🙁

    返信
    1. をかもと 投稿作成者

      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

      返信
    1. をかもと 投稿作成者

      miyoshi さん、どもです。

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

      返信

コメントを残す

メールアドレスが公開されることはありません。