WordPressに簡単にアクセス解析&アクセスカウンタの表示機能をつけられるCounterizeⅡというプラグインがあります。

Visitor queue during the Edelmetallmesse
Visitor queue during the Edelmetallmesse / GoldMoneyNews

インストールの方法は通常のプラグインと一緒。

  • WordPressの管理画面【プラグイン】→【CounterizeⅡを検索】→【インストール】→【有効化】

  • 配布サイトからzipファイルをダウンロード。解凍して出来たcounterizeiiフォルダをサーバー上のwp-content/pluginsフォルダへアップロード。管理画面のプラグイン一覧から有効化。

以上の2つ方法のどちらでもインストール出来ます。

インストールと有効化が済めばWordPressの管理画面にこのようにデータが表示されます。

CounterizeⅡ

※Counterize Ⅱ Statusの横の「>>」をクリックすると、もう少し詳細な解析データが表示されます。

アクセス解析を見るだけならこれでOKですが、アクセスカウンタとして使用する場合には、ブログへPHPコードを埋め込んで表示させる必要があります。

テンプレートに直接コードを書き込んでも構わないのですが、カウンタが表示される場所をある程度自由に変更出来るように、ウィジェットを使ってサイドバーに表示させてみます。

サイドバーにカウンターを表示する手順

サイドバーでPHPが動くように、プラグインPHP Code Widgetをインストール。

有効化するとウィジェットが追加されています。

PHP Code

これを適当にタイトルを「カウンタ」にでもしてサイドバーへドラッグ&ドロップ

サイドバー

以下のようなコードを記述

<ul>
<li>Total: <?php echo counterize_getamount();?></li>
<li>Today: <?php echo counterize_gethitstoday();?></li>
<li>yesterday: <?php echo counterize_gethitsyesterday();?></li>
<li>online: <?php echo counterize_get_online_users();?></li>
</ul>

このコードについては

  • Total→累計アクセス

  • Today→今日の訪問者

  • yesterday→昨日の来客

  • online→ただいま閲覧中

など自分の表示したい風に自由に書き換える事が可能です。

これで保存をクリックすればOKかと思いきや、そうはいきません。
このままではエラーが出てしまいます。

なぜなら、このCounterizeⅡというプラグインでは「累計アクセス」や「今日のアクセス」を表示することが出来ますが、デフォルトでは「昨日のアクセス」が表示されないのです。
バージョンが上がればいつか実装してくれるのではないかと思っていますが、残念ながら今の段階では標準装備されていません。

そこで「昨日のアクセス」が表示されるようにcounterize.phpに少し追記します。

counterize.phpファイルの編集方法は

  • 管理画面→プラグイン→Counterize II→編集→counterize.phpを編集

  • ローカルにあるcounterizeiiファイルの中のcounterize.phpファイルをエディタで編集→サーバーにアップロードして上書き

以上のどちらでも構いません。

ネット上で検索してみると、

counterize.phpを開いて232行目あたりにある関数

# Returns amount of hits today.
function counterize_gethitstoday()
{
$today = date(“Y-m-d”);
$sql = “SELECT COUNT(1) FROM “.counterize_logTable().” WHERE timestamp >= ‘$today’”;
$wpdb =& $GLOBALS['wpdb'];
return $wpdb->get_var($sql);
}

の下に以下の関数を追記して保存。

# Returns amount of hits yesterday.
function counterize_gethitsyesterday()
{
$today = date(“Y-m-d”);
$yesterday = date(“Y-m-d”,strtotime(“-1 day”));
$sql = “SELECT COUNT(1) FROM “.counterize_logTable().” WHERE timestamp >= ‘$yesterday’ AND timestamp < '$today' ";
$wpdb =& $GLOBALS['wpdb'];
return $wpdb->get_var($sql);
}

これで「昨日のアクセス」が表示されるようになります。

と説明がされていることが多いですが、今これを書き加えるとエラーが出て最悪WordPress自体が表示されなくなってしまいます。(というか実際なりました。)

そもそも232行目にあんな関数がありません。

どうやらCounterizeⅡのバージョンが上がった時に、counterize.php内の記述も少し変わったようです。

ではどうするのかと言えば

現在のバージョン(counterizeⅡ3.0.1)のcounterize.phpでは158行目から165行目あたり(違う行の場合もありますので探して下さい)に以下のような関数がありますので

// Returns amount of hits today.
function counterize_gethitstoday()
{
global $wpdb;
$today = date(“Y-m-d”);
$sql = “SELECT COUNT(1) FROM ” . counterize_logTable() . ” WHERE timestamp >= ‘{$today}’”;
return $wpdb->get_var($sql);
}

この下に次の関数をそのまま追記します。

# Returns amount of hits yesterday.
function counterize_gethitsyesterday()
{
global $wpdb;
$today = date(“Y-m-d”);
$yesterday = date(“Y-m-d”,strtotime(“-1 day”));
$sql = “SELECT COUNT(1) FROM “.counterize_logTable().” WHERE timestamp >= ‘$yesterday’ AND timestamp < '$today' ";
return $wpdb->get_var($sql);
}

これで「昨日のアクセス数」も無事表示されるようになります。

カウンタ