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
アイコンがキャッシュされません。
オプション、プラグインの再インストール、PHPのバージョン、ディレクトリの存在、パーミッション等、
色々と試しましたが、キャッシュ機構がまったく働いていない状態です。
何か思い当たる節はありますでしょうか。
はじめまして。
素晴らしいプラグインを作成していただき、ありがとうございます。
とても有り難く使わせていただいております。
1つ要望がございます。
リツイートの表示、非表示を選択できる機能を付けていただきたく存じます。
可能であれば、ぜひお願いいたします。
ピンバック: テーマの functions.php を書き換えずに WP プラグインを開発! | ZERO BASE
ピンバック: WordPress の functions.php を変更したらアクセスできなくなった! | ZERO BASE
ピンバック: single.phpを少しカスタマイズ | ツブヤキ。
ピンバック: BTCNew から Feedback Champuru へ変更してみた! | ZERO BASE
とてもよいプラグインで利用したいのですが、Vicuna Ext. Customでは表示されません。
何か方法はありますでしょうか?
さいとうさん、はじめまして。
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
ピンバック: コメント欄でのtwitterとの連携について。 | 採集防衛ライン
ピンバック: Zenbackの代わりになる3つのプラグイン+1 | NANOKAMO BLOG
ちょっと実験させてください
Feedback Champruを導入しましたが、ツイートとコメントの数が合いません
どこを見直せばいいでしょうか??
確認時はツイート3でコメント1(ツイートの真ん中のみ拾っています)
http://ryo.apejp.com/archives/2808
よろしくお願いします
今井さん、どもです。
FeedBack Champru は Topsy からデータ取ってきてるので、公式検索とのズレは出ます。
ちなみに Topsy での該当URLの検索結果はここになります。
http://topsy.com/ryo.apejp.com/archives/2808
Feedback Champruとても便利に利用させて頂いています。
しかし、はてブの表示が調子悪いです 😥 現在はHatena bookmark anywhere (はてブコメント表示)を併用しています。
takapon さん、どもです。
はてブですが Feedback Champuru では、コメントがあるときだけ表示しています。
タグ付けのみされた場合は表示されません。
そのせいで、表示されないのでは無いでしょうか?
ピンバック: 道道つれづれ線
ピンバック: ワタシの今の環境を晒してみるよ - LOVE!?
にいさん、こんにちは。
今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の独自仕様に悩まされるんですよねぇ。
お手数おかけしました。
ありがとでした 😀
にいさん、早速使わせていただいてます。 😀
ところで、コメントを判別する 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
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系へも対応させるのは、そんなに面倒じゃないかも。
情報サンクスです。