WordPressでアクセスカウンタ+アクセス解析用に使用しているCounterize IIというプラグイン。
管理画面から、直近のアクセスログを見ることができるのだが、IPアドレスは表示されない。
管理上、不正あるいは異常なアクセスがあった場合にはIPアドレスを参照したいこともあるので、「最近の訪問者」一覧にIPも表示されるように改造してみた。
いじるのは、counterize.php。
まず、Counterize IIのデータベースに、生のIPアドレスが格納されるようにする。
私のダウンロードしたバージョンだと784行目あたり。
旧:$sql .= “‘” . substr(md5($wpdb->escape($remoteaddr)),1,16) . “‘,”;
新:$sql .= “‘” . $wpdb->escape($remoteaddr) . “‘,”;
旧を新に書き換える。
次に「function counterize_show_history()」という関数。(私のバージョンだと1076行目あたり)
ここに、アクセスログ一覧テーブルの構造が指定してあるので
見出し行:<td scope=”col” style=”width: **%”><strong><?php _e(“IP”,’counterize’); ?></strong></td>
内容表示行(foreach内):<td scope=”col” width=”**%”><small><?php echo $entry->ip; ?> </small></td>
を<tr>?</tr>内の表示させたい場所に挿入する。
全体として列(<td>)の幅指定が狂ってしまうので、実際に表示される画面を見ながら列幅を指定しなおすとよい。
あまりに頻繁にアクセスがあるので、なんだろうと思って調べてみたら、いろんなbotがブラウザ情報偽ってアクセスしてきてる、っていうのが分かったりしておもしろかったw