WordPress 3.0: Commented entry listの動作不具合修正

WordPress ポケットリファレンス (POCKET REFERENCE)

ブログソフトウェア「WordPress」のバージョンを3.0に上げたら、愛用していたプラグイン「Commented entry list」が動かなくなってしまったので、ソースを修正して対応したよ。

問題点

うちのブログのサイドバーには「最近のコメント」というのが表示されてるんだけど、ここは前述のプラグイン「Commented entry list」が表示している部分なのね。

ところがWordPress本体を3.0にアップデートしたら、最近のコメントとして「No Response」しか表示されなくなってしまいました。

原因調査

さっそく原因を調査したところ、「WordPress3.0リリース&Commented entry listが動かなくなった場合の対処方法。 | ごみおきば」経由で、「WordPress 3.0 RC1 日本語版 リリース ≪ REIMA’s Blog」に到達。

曰く、Commented entry listで「$tablecommentsと$tablepostsにテーブル名が入っていない」のが原因らしい。

解決方法

Commented entry listのソースを修正して、$tablecommentsと$tablepostsに正しい値が入るようにすれば良いみたい。

具体的にはget_recently_commented関数と、get_recently_trackbacked関数の先頭で変数定義を行っているので、この2ブロックを変更するようです。

元ソースはこんな感じ。

function get_recently_commented($limit = 10) {
global $wpdb, $tablecomments, $tableposts;
	:
	:
function get_recently_trackbacked($limit = 10) {
global $wpdb, $tablecomments, $tableposts;

上記2ブロックの関数先頭にある変数定義を、以下のように書き換えます。

function get_recently_commented($limit = 10) {
	global $wpdb;
	$tablecomments = $wpdb->comments;
	$tableposts = $wpdb->posts;
		:
		:
function get_recently_trackbacked($limit = 10) {
	global $wpdb;
	$tablecomments = $wpdb->comments;
	$tableposts = $wpdb->posts;

これで無事にプラグインが正常に動作するようになりました。良かった、良かった。