サイドバーのコメント表示プラグイン Get Recent Comments

WordPress Plugin: Get Recent Comments at Bitte keine heiße Asche einwerfen
WordPress Plugin: Get Recent Comments at Bitte keine heiße Asche einwerfen

サイドバーにウィジェット(Widget)でコメントを表示するプラグイン(plugin)として、古くから存在しているGet Recent Commentsを紹介したい。WordPressのデフォルトでもウィジェットに最近のコメントを表示することはできる。しかし、コメントとトラックバックを分けて表示することはできないし、最近のコメントを最大でも15件までしか表示できない。

Get Recent Commentsというこのプラグインを使用するとコメントとトラックバックを分けて表示できるし、表示項目を自由に変更もできるようになる。大変便利なコメント表示プラグインなのでブログではぜひ使用したいところだが、デフォルトでは文字化けが発生したり、ウィジェットの更新時にタイトルがおかしくなる、などの問題がある。ここではGet Recent Commentsの修正方法とともに導入の仕方を見ていきたい。

ダウンロード
まずはGet Recent Commentsを入手しよう。ダウンロードはWordPressのプラグインディレクトリから行える。最新バージョンは2.0.2でWordPress 2.3以上を使用している場合はこの最新バージョンを使用すればいい。ダウンロードが済んだら、圧縮ファイルを解凍してget-recent-commentsディレクトリにある、get-recent-comments.phpを編集しよう。編集箇所は以下の2点だ。

文字化けの修正
デフォルトのコードのままだと、Get Recent Commentsはマルチバイトの文字をきちんとカウントできないためにコメントの文字数によっては文字化けしてしまう。これを回避する方法が1487行目あたりにある下記のkjgrc_excerptという関数を変更する(参照:Recent Commentsの修正 – Binsan’s Cafe)。どこを変更しているかというと、if (strlen($text) > $length) {の後に分岐を加えている。mb_strimwidthという関数があれば、マルチバイトの文字数でコメントを丸めて文字化けなく表示してくれるようになる、というものだ。(文字化けがこれだけでは直らないかもしれない。Get Recent Comments を日本語対応も参照してほしい)

function kjgrc_excerpt ($text,$chars_per_comment,$chars_per_word,$tag,$output)
{
	$length = strlen(str_replace($tag,"",strip_tags($output)));
	$length = $chars_per_comment - $length;
	$length = $length -2; // we will add three dots at the end
	if ($length < 0) $length = 0;
	if (strlen($text) > $length) {
		if (function_exists('mb_strimwidth')) {
			$text = mb_strimwidth($text, 0, $chars_per_comment, '...', 'utf-8');
		} else {
			$text = substr($text,0,$length);
			$text = substr($text,0,strrpos($text,' '));
			// last word exceeds max word length:
			if ((strlen($text) - strrpos($text,' ')) > $chars_per_word) {
				$text = substr($text,0,strlen($text)-3);
			} 
			$text = $text . "...";
		}
	}
	#$text = "[EXCERPT]: '$text'";
	return "$text";
}

ウィジェットの更新時、%BEG_OF_TITLE%Recent Comments%END_OF_TITLE%となる不具合
上記の文字化けの問題に加えて、キャッシュを使用している(デフォルトの設定)と、ウィジェットの更新時にコメントのタイトルが、%BEG_OF_TITLE%Recent Comments%END_OF_TITLE%のように表示されてしまうという不具合がある。これはキャッシュを使用しないように設定するか、Get Recent Commentsの設定を更新するとタイトルが正常に表示されるようになる。

Get Recent Commentsの設定にあるMiscellaneous Optionsにてキャッシュを使用しないように設定すればウィジェットの更新時にタイトルがおかしくなることはなくなるが、キャッシュは利用したいところだ。そこで、なんとかする方法を下記に示す。691行目あたりにあるkjgrc_use_cacheという関数に1行加えてある。ウィジェットの更新時にはキャッシュを使用しないという処理を加えている。

function kjgrc_use_cache()
{
	if( strstr($_SERVER['REQUEST_URI'], 'wp-admin/widgets.php') ) return 0;
	add_option('kjgrc_use_cache',1);
	return get_option("kjgrc_use_cache");
}

使用方法
上記2点の修正が済んだら、wp-content/pluginsディレクトリにファイルをアップロードして有効化しよう。サイドバーに最近のコメントやトラックバックをウィジェットで表示する場合は、管理メニューのテーマにあるウィジェットを表示し、Get Recent CommentsまたはGet Recent Trackbacksを追加しよう。タイトルは自由に変更してほしい。以上でサイドバーにコメントがきちんと表示されるようになるはずだ。

設定項目
管理メニューの設定にあるRecent Commentsで各種設定を行うことができる(余談だが、Lighter Menusという管理メニューをドロップダウン形式で表示するプラグインを使用し、サブメニューを表示しないように設定していると設定項目のリンクが表示されないので注意したい)。コメントやトラックバックの設定では、表示数、コメント文字数を決めたり、マクロで表示形式を自由に設定できたりする。またコメントを表示しないカテゴリを指定したり、アバターの設定ができる。詳細なヘルプがついているので参照するとよいだろう。なお、サイドバーにウィジェットを使用しない場合には、ヘルプにあるコードを参考に直接sidebar.phpに書けばよいだろう。

Get Recent Comments 設定画面

今回は、最近のコメントやトラックバックをサイドバーに表示するのに最適なプラグインであるGet Recent Commentsというプラグインを紹介した。2点ほど修正が必要だが、大変便利なプラグインなのでブログの運営にはかかせないプラグインだろう。是非参考にしてほしい。

追記:最新版の2.0.6ではマルチバイト対応がなされているので、上記の修正を加える必要はないだろう。

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

«
»

関連する投稿

Comments and Trackback are closed.

Trackbacks (14)

[…] 他のサイトで「最近のコメント」にコメントへのリンクではなくコメント内容が表示されているサイトを見ました、僕にも何とか出来ないものかと検索していたら「サイドバーのコメント表示プラグイン Get Recent Comments」を見つけました、しかしこのプラグインはウィジェット対応ですが、当サイト使用のテーマkoikikuukann3ではウィジェットに対応していません、でも記事を読み進んでいくと「サイドバーにウィジェットを使用しない場合には、ヘルプにあるコードを参考に直接sidebar.phpに書けばよいだろう。」という箇所を見つけ制作者のサイト「Bitte keine heiße Asche einwerfen」へ下の方に […]

[…] サイドバーのコメント表示プラグイン Get Recent Comments | WordPressで企業ウェ

[…] ・まずダウンロードして解凍、get-recent-commentsディレクトリにある、get-recent-comments.phpを編集しなければならない。 ・1487行目の下記のkjgrc_excerptという関数を変更する。 ・もうひとつ。691行目くらいにあるkjgrc_use_cacheという関数に1行加える。ウィジェットの更新時にはキャッシュを使用しないという処理、なのだそうだ。 (ソースは→参照:WordPressで企業ウェブサイト作成・商用ホームページ制作 WordPress Go Go:サイ…) […]

[…] サイドバーのコメント表示プラグイン Get Recent Comments | WordPressで企業ウェ

[…] Get Recent Comments サイドバーで、コメントを階層表示できるプラグイン。ただプラグインに問題があるので、こちらのサイトを参考に簡単な修正が必要。 […]

[…] ②ウィジェットのタイトルが%BEG_OF_TITLE%Recent Comments%END_OF_TITLE%となる WordPress Go Goさんのエントリーを参照させて頂き、 キャッシュを使用しないように設定するか、Get Recent Commentsの設定を […]

gaga bel air 時計

サイドバーのコメント表示プラグイン Get Recent Comments | WordPressで企業ウェブサイト作成・商用ホームページ制作 WordPress Go Go

salvatore ferragamo サルヴァトーレフェラガモ サルヴァトーレフェラガモサブティール

サイドバーのコメント表示プラグイン Get Recent Comments | WordPressで企業ウェブサイト作成・商用ホームページ制作 WordPress Go Go

レディース ファッション 3月更新ドレス

サイドバーのコメント表示プラグイン Get Recent Comments | WordPressで企業ウェブサイト作成・商用ホームページ制作 WordPress Go Go

コーセー 落とすス

サイドバーのコメント表示プラグイン Get Recent Comments | WordPressで企業ウェブサイト作成・商用ホームページ制作 WordPress Go Go

casio カシオ 2013年 6月新製品

サイドバーのコメント表示プラグイン Get Recent Comments | WordPressで企業ウェブサイト作成・商用ホームページ制作 WordPress Go Go

ニクソン(NIXON)

サイドバーのコメント表示プラグイン Get Recent Comments | WordPressで企業ウェブサイト作成・商用ホームページ制作 WordPress Go Go

idm

サイドバーのコメント表示プラグイン Get Recent Comments | WordPressで企業ウェブサイト作成・商用ホームページ制作 WordPress Go Go

Comments (2)

大変参考になりました。
ありがとうござます。

ようやくまともなコメント欄を設置することができました。

また、遊びにきます♪

質問させて下さい。

「Comments」内の「Group comments by Posting」で、好きな形に修正し、保存しましたが、その内容というのは、一体どこの場所(ファイル?)に保存されるのでしょうか。

MySQLなど色々と探しましたが、見当たらず、どこかのファイルに上書きされているのかと思っておりまして。。。ずっと探していましたが不明で行き詰っております。

まだまだ初心者でして、どうかご返答の程、よろしくお願いいたします。