Skip to content
2012/03/08 / Javelina

SNS上での自サイトへの言及をコメントとして表示できるFeedback Champuruを入れてみた

またもや本家ブログの話です。SNSおける自サイトのURLリンクを含む投稿を、そのURLの記事のコメントとして表示することのできるWordPressプラグイン、Feedback Champuruを導入してみました。

もともとコメントのほとんどつかないブログなのですが、twitterなどでごくたまに大変嬉しいコメント等を頂いたりします。そういったありがたいコメントを、形としてブログ上に残せたらな~と思い、導入してみることにしました。

上記のリンク先の紹介文の中では、対応しているSNSとして
 

Twitter and Social Bookmarking systems(Hatena, Delicious, FriendFeed, livedoor clip, Buzz

が挙げられていますが、プラグインを実際に有効化し、オプション画面を覗いて見ると、現行バージョン(0.5.3)ではこの他にGoogle+にも対応しているようです。↓
 

Feedback Champuruオプション画面
 

使用方法等は、プラグインの製作者様のホームページで説明されています。
Feedback Champru : dogmap.jp
 

上記ページの説明の中で、特定のユーザー(例えば自分自身)が言及した物をコメントに含めないようにしたい場合は、以下のように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 != '除外したいユーザー')
                    $comments[] = $comment;
                break;
            default:
                $comments[] = $comment;
                break;
            }
        }
        return $comments;
}
add_filter('feedback-champuru/comments_array', 'champru_comments', 10, 2);

 
例えば、自分自身でtwitterなどで「ブログ更新しました。【URL】」という風に書くと、それもコメントとして表示されてしまうので、自分のユーザー名を除外したりするわけですね。早速私も設定しておきました。
 

で、いざプラグインを使いはじめて思ったこと。

twitterなどで、通常の投稿で紹介して頂いたものに関しては、不特定多数の方に見せる事が前提だとは思うので、コメントとして取り込んでも問題ないかとは思うのですが(実の所それも若干の抵抗感が無きにしもあらずだったりするんですが)、そうではなくどなたか宛のリプライの中でサイトを紹介して下さっている場合、それを勝手にコメントに含めてしまうのはまずいんじゃないかな?と。

そんな風に感じたので、リプライで言及して頂いているものに関しても除外することにしました。

本文中に”@”マークが入っている時に弾く場合は、
 

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 != '除外したいユーザー'  && mb_strpos($comment->comment_content,'@') === false)//ここを変更しています
                    $comments[] = $comment;
                break;
            default:
                $comments[] = $comment;
                break;
            }
        }
        return $comments;
}
add_filter('feedback-champuru/comments_array', 'champru_comments', 10, 2);

 
このように記述するとよいかもです。
ただし、これだとリプライでなくても本文中に@マークが使用されているもの(例えばサイトのツイートボタンを使用してのつぶやきで、文の後ろに「@ユーザー名」が入るようにしているケース等)でも弾かれてしまいます。
そこで、一文字目が@マークの場合のみ弾く場合は、以下のような感じになります。
 

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 != '除外したいユーザー' && mb_substr($comment->comment_content,0,1) != '@')//ここを変更しています
                    $comments[] = $comment;
                break;
            default:
                $comments[] = $comment;
                break;
            }
        }
        return $comments;
}
add_filter('feedback-champuru/comments_array', 'champru_comments', 10, 2);

 
これで、リプライをコメントから除外することができました。
私は面倒なので上記のように書きましたがtweetにのみ反映させたい場合はcase ‘tweet’ :のあとに書けば良いですね。
 

また、スマートフォン向けテーマを適用するプラグインWPtouchを使用していて、
そちらでも同じような除外設定を行いたい場合は、上記のfunctionをWPtouchのテーマフォルダの中にあるfunctions.phpにも書かなければいけないっぽいので注意が必要です。
 

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。