wordpress plug-in

WordPressでページのアクセスログを収集する方法

,

wordpress plug-in

ログインユーザーと紐づけたアクセスログ

通常のアクセス集計・分析なら、「 Jetpack 」や「 Google Analytics 」で十分だと思うのですが、「 Woocommerce 」など、WordPressにログインして活用する場合、ログインユーザーと紐づけてアクセスログを収集しようと思うと不十分なので、ちょっと一手間加えてみました。

アクセスログの収集

とりあえずで考えたのが以下のコード。とりあえず、 $_SERVER の中身を post_meta に入れてみようと思いました。

/*-------------------------------------------*/
/*  ページごとにアクセスログを記録
/*-------------------------------------------*/
function jcs_server_user_chk() {
    global $post;
    $user = wp_get_current_user();
    if($user->ID){
        $uid = $user->ID;
    } else {
        $uid = 'none';
    }
    $array['TIME'] = time();
    $array['SESSID'] = $_COOKIE['PHPSESSID'];
    $array['UID'] = $uid;
    $array['PID'] = $post->ID;
    $array['URL'] = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    $array['REFERER'] = $_SERVER['HTTP_REFERER'];
    $array['IP'] = $_SERVER['REMOTE_ADDR'];
    $array['AGENT'] = $_SERVER['HTTP_USER_AGENT'];
    add_post_meta($post->ID, '_post_serveraccess_log', $array);
}

これを[ wp_footer ]と[ admin_footer ]で実行しようと思います。

add_action( 'wp_footer', 'jcs_server_user_chk' );
add_action( 'admin_footer', 'jcs_server_user_chk' );

functions.php に記述すれば、とりあえず、ページごとのログが保存されるようになります。

あくまで、簡易的な実装方法なので、参考までにということで。もっと良い方法があれば、コメント頂けると嬉しいです。

おまけ

あと、収集したログの表示や出力、ログの削除もあると便利ですよね。上記のコードとあわせて、簡易版ですが、プラグインとしてインストール出来るようにしてみました。
よかったら、こちらに置いておきますので、参考にしてみてください。(使用は自己責任でお願いします。)
ダウンロード

自己紹介

松田 大と申しますm(_ _)m
インディーズでミュージシャンをやっていたのですがいつのまにか…

とある企業でショップのアルバイトスタッフから正社員、支店長を経てシステム部門に異動するという、開発担当としては変わった経緯を持っている方だと思います。

「Excel VBA」からスタートして、Yamaha RTX シリーズで VPN環境構築、Hyper-V環境構築、Windowsアプリ開発などを経験した後、「 WordPress 」に出会い、どっぷりハマっています。

現在勤めているETBS合同会社では、「 WordPress 」を活用したWEBサイト、業務用WEBアプリケーション開発を中心に、記事の執筆代行や掲載に必要な情報のリサーチ、映像のテロップ入れや切りはりなどの簡単な動画編集なども、まとめて行なっています。

現在、代表兼二児のパパ。子育てを通じて、こどもたちにもプログラミングの楽しさに触れてほしいと思うようになり、「 こどもICTかつしか教室 」を開講中。最近は童心に帰り、簡単なゲーム制作なんかも楽しんでいます(^_^)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です