FlatPress.info

Information & blog

アクセスカウンターのプラグインの作成

インターネットの黎明期の頃は、当然ながらホームページを所有し公開することにステータスが表れていました。今日ではホームページを持たないところにユニークさを見出すかも知れません。当時は、アクセスカウンター(ウェブカウンター)がホームページの目立つところに設置されて「あなたは○○○番目の訪問者です」などと表示されていたものです。しかしながら、このようなサイトを見かけることはめったになくなりました。

 

さて、今回はそのようなレトロ風なアクセスカウンターを作成してみたいと思います。実際に設置した様子を下に示します。

webcounter-disp

どうでしょうか、こんな感じです。先の記事である「ページビューのプラグイン」を利用すれば任意のページのアクセス集計を見ることは可能です。それに比してこのカウンターは1ページ分しか表示できません。通常はトップページへのアクセス数を表示することになるでしょう。しかし、検索エンジンで内部のコンテンツページに直接アクセスされた場合は、このトップページに設置されたアクセスカウンターは増加しないですね。ということで、このアクセスカウンターの意義は何なのだろうか、という疑問を持つのはまっとうなところです。ここでは気楽なアクセサリーの一つだと考えておきましょう。

 

どのページのアクセス数をカウントするのか

このプラグインをインストールすると「管理エリア」にアクセス数をカウントアップさせるページを指定できるようにしました。このサンプルでは[about](上図のようなスタティックページ)を指定しているところです。これを特定のブログページにしたい場合には、ブラウザのURL表示から"?x="から後ろのIDをコピー&ペーストしてください。その部分は例えば[entry:entry141010-150231]となります。こうするとそのページがカウントアップ対象となります。

webcounter-set2

設定の仕方については、まず、本プラグインを有効化します。

webcounter-eneble

引き続いて、ウィジェットとして表示させるエリアを選択します。冒頭のサンプルでは説明上で目立つように上部にもってきてますが、厳かに一番したに持ってくるのもよいでしょう。

webcounter-widget

次に、どのページをカウントアップの対象にしたいのかを選択します。記事ページでなかった場合、すなわちスタティックページにしたいときには、下記の管理エリアの「ページ名」から選択することになります。

webcounter-default-page-list

また、どのページがトップページとして表示されるのかについては、管理ページの「このウェブサイトのホームページ」で示されているものとなります。

webcounter-default-page-set

 

プログラムについて

本プラグインをダウンロードして fp-plugins/ 配下で解凍してください。カウント画像用のデータも含まれています。

メインのソース部分を掲示しておきます。gif/ 以下の画像を変えればお好きなカウンタ画像に早変わりしますのでお試しください。

<?php
/*
Plugin Name: Web Counter
Plugin URI: http://flatpress.info                                                                                                       
Description: Web Counter program
Version: 0.5
Author: Flatpres.info
Author URI: http://flatpress.info                                                                                                       
*/
function plugin_webcounter_css() {
$h=plugin_geturl('webcounter').'res/css/webcounter.css';
echo '<link rel="stylesheet" type="text/css" href="'.$h."\" />\n";
}
add_action('wp_head', 'plugin_webcounter_css');
function plugin_webcounter_widget() {
$lang = lang_load('plugin:webcounter');
$widget = array();
$widget['subject'] = $lang['plugin']['webcounter']['subject'];
include 'webcounter.php';
return $widget;
}
register_widget('webcounter', 'webcounter', 'plugin_webcounter_widget');
if (class_exists('AdminPanelAction')){
class admin_plugin_webcounter extends AdminPanelAction {
function setup() {
$this->smarty->assign('admin_resource', "plugin:webcounter/admin.plugin.webcounter");
$bc_config = plugin_getoptions('webcounter');
if(!$bc_config['pageid']) {
$pageid = "Set pageID";
plugin_addoption('webcounter', 'pageid', $pageid);
plugin_saveoptions('webcounter');
}
}
function main() {
$bc_config = plugin_getoptions('webcounter');
$this->smarty->assign('bc_config', $bc_config);
}
function onsubmit() {
if ($_POST['bc-pageid']){
$pageid = $_POST['bc-pageid'];
plugin_addoption('webcounter', 'pageid', $pageid);
plugin_saveoptions('webcounter');
$this->smarty->assign('success', 1);
} else {
$this->smarty->assign('success', -1);
}
return 2;
}
}
admin_addpanelaction('plugin', 'webcounter', true);
}
?> 

 ちなみに、リセットしたい場合には fp-content/content/gcount.txt のファイルを削除してください。プラグイン実行時に再度、自動作成されます。

FlatPess 記事

Copyright c  flatpress.info 2015. All Rights Reserved.