WordPress - CounterizeIIから記事毎のアクセス数取得関数作成!
Updated:
昨日はアクセス解析プラグイン「CounterizeII」のデータから人気記事の一覧を取得する関数を作成しました。(参照「WordPress - CounterizeIIから人気記事リスト取得関数作成!」)
今日はその応用で各記事の総アクセス数を取得する関数を作成してみました。昨日よりも簡単。
以下に記録しておきます。
作業記録
1. SQL実行テスト
関数をいきなり作成する前に、前もってSQLを作成してテスト見る必要があります。 phpMyAdmin等でSQL文を作成・実行して、希望通りの結果が得られるか確認します。 今回はページアクセス状況が記録されている「wp_Counterize_Pages」テーブルから特定の「投稿ID」の「アクセス数」を取得します。 以下がテスト用SQLです。
SELECT SUM( count )
FROM `wp_Counterize_Pages`
WHERE postID = 4767
GROUP BY postID
【2011/09/14修正】wp_Counterize_Pagesには同じ”postID”でも複数レコードが存在するため、同じ”postID”は合算するように修正。
2. 関数作成
上記のSQLを関数化します。投稿IDを引数で指定します。 WordPressの使用中のテーマ内の「functions.php」に以下のように記述を追加します。
function get_pageviews( $postID ) {
global $wpdb;
$sql = "SELECT SUM( count ) "
. " FROM `wp_Counterize_Pages` "
. " WHERE postID = " . $postID
. " GROUP BY postID ";
$res = $wpdb->get_var($sql);
return $res;
}
【2011/09/14修正】wp_Counterize_Pagesには同じ”postID”でも複数レコードが存在するため、同じ”postID”は合算するように修正。
3. 関数使用設定
人気記事リストを表示させたい場所にPHPソースを記述します。 今回は各記事の投稿日時表示位置の直後に追加しました。
<?php echo number_format( get_pageviews( $post->ID ) ); ?> Views
※投稿IDの取得は”the_ID()”ではなく”$post->ID”です。”number_format”は取得した数値を3桁ごとのカンマ区切りにするために必要。
参考サイト
- 関数リファレンス/wpdb Class - WordPress Codex 日本語版
-
[WordPress の設定を使ってデータベースにアクセスする方法 Sun Limited Mt.](http://blog.syuhari.jp/archives/410 “WordPress の設定を使ってデータベースにアクセスする方法 Sun Limited Mt.”)
前回、今回とデータさえあればプラグインなど使用しなくても簡単に取得できるという例でした。 プラグインを使用せず自分のテーマ内の関数に定義しているので、プラグインのアップデートによる再カスタマイズの作業も不要です。 それに、簡単な処理にもかかわらず、プラグインで数々のプロセスを経て必要以上に動作が重くなることもありません。
以上。
Comments