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_array、feedback-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 – WordPress のコメントに Twitter、はてなブックマーク、Delicious での言及を混ぜ込むプラグイン… http://bit.ly/9FxBHR [twicco.jp @wokamoto ]
json_decode() は WordPress 2.9 以降なら compat.php で定義されてるので、PHP 4 系でも大丈夫かも。
http://core.trac.wordpress.org/browser/tags/2.9.2/wp-includes/compat.php#L139
miyoshi さん、どもです。
ホントだ!json_decode()は、WordPress が実装してくれてるんですね。
PHP4系へも対応させるのは、そんなに面倒じゃないかも。
情報サンクスです。
にいさん、早速使わせていただいてます。
ところで、コメントを判別する comment_type みたいなものはどう書いたらいいでしょう?
「○○さんのツイート」とか振り分けたいのですけどね。いろいろとやってみましたが、そんなの知らねーよと言われます。orz
なにとぞ一つ、お願いします。
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
Feedback Champru : dogmap.jp http://ff.im/-n9S13
にいさん、こんにちは。
今wp.Vicuna Ext. Customというテーマを使ってるんですが、うまく表示できません。
何かテンプレートタグを付け足さないとだめでしょうか?
他のテーマだと大丈夫なので、Vicuna特有の問題かなぁと思うのですが。
satchin どもです。
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
Dも送りましたが、にいさんのと差し替えたらバッチリでした。
時々Vicunaの独自仕様に悩まされるんですよねぇ。
お手数おかけしました。
ありがとでした
WordPress のコメントに Twitter、はてなブックマーク、Delicious での言及を混ぜ込むプラグイン。wp.Vicuna Ext. Customだとそのままでは表示できないので、をかもとさんにテーマを修正していただいた… http://htn.to/f8GGTV
WordPress のコメントに Twitter、はてなブックマーク、Delicious での言及を混ぜ込むプラグイン。wp.Vicuna Ext. Customだとそのままでは表示できないので、をかもとさんにテーマを修正していただいたものを使っています。
この機能を使いたいがためにWordpressを今から立ち上げて遊ぼう! http://dogmap.jp/2010/07/04/feedback-champru/
PHPとJSONとWordPressに関する@takayukisterさんの会心のコメント ”json_decode() は WordPress 2.9 以降なら compat.php で定義されてる” http://goo.gl/P1fR
http://bit.ly/dnOb8k Feedback Champru : dogmap.jp
やべえこれがいまツボった!>例えば、以下のようなコードをテーマの functions.php に書いておくと特定のユーザからの言及に付いては、表示しないようにできます。
http://dogmap.jp/2010/07/04/feedback-champru/
説明文通りにしたら無事自分のツイートが除外出来ました。RT @wokamoto: Feedback Champru – dogmap.jp http://dogmap.jp/2010/07/04/feedback-champru/
Feedback Champru: WordPress のコメントに Twitter、はてなブックマーク、Delicious での言及を混ぜ込むプラグイン Feedback Champru を作成しました。… http://dlvr.it/3GFJq
wp.Vicuna Ext. Customではそのままでは機能しないらしい。コメ欄に書いてあるから要チェック。
テストしてみようっと。
テストしてみようっと。 / Feedback Champru : dogmap.jp http://htn.to/i1c5Q
ブログに関するツイートを、ブログのコメント欄に転載するプラグインを導入しました( @wokamoto さん作「Feedback Champru」。 http://ow.ly/2pJKl )。このところ閑散としているコメント欄に、いくらか活気が出るでしょう。
WPコメント拡張プラグイン。 / Feedback Champru : dogmap.jp http://j.mp/do0dXv