サイト上で、何らかのファイルをダウンロードできるようにしている場合、どのファイルがどのくらいダウンロードされているか、カウントしたい所です。
今回は、
はじめに
PHPアップロードでのメリット
WordPressでダウンロードの数をカウントしてくれるプラグインは、有名どころで「Download Manager」があります。
この「Download Manager」。
当初、当サイトも利用してみたのですが、以下の理由で使うのをやめました。
ページスピードを測るサイトで、改善できる点として「不要なCSSを読み込まないようにしろ」と出て、そこにずらずら~っと並んでいたのが「Download Manager」のCSSでした。
実際使っていないし、CSSだけ削除してやろうかと、このプラグインのディレクトリを見てみてると、相当なファイル数。しかも使わないもの多数!
※利用していたバージョンは 3.0.1
これはCSSファイル削除だけでなく、このプラグインの利用をやめようと思い、PHPで実装する事にしました。
プラグインのメリット
- PHPファイル編集などの必要がない
- FTP操作の必要がない
- アイコン表示やデザイン設定が可能
PHP編集が面倒な方や、見た目にアイコンなどが欲しい方は、言っても利用者の多い有名プラグインなので「Download Manager」を使う手もあります。
うちは個人的に、少しでも軽い事の方を重要視しているので、選択肢はPHPになりました。
利用させて頂いたのは、無料で便利なツール(PHP)を配布されているサイト「PHP工房」さんのダウンロードカウンター。
用意するもの
ダウンロードカウンター
上記の通り、無料配布のPHP工房さんから、「ダウンロードカウンター」をダウンロードします。
FTPクライアント
ダウンロードしたPHPファイルを編集し、サーバーへアップロードするのに使います。
FTPについては以下をご覧ください。
ダウンロードするファイル
ダウンロードする為のファイルは、メディアにアップロードしておきます。
設定方法
当サイトで行った以下の設置例での説明です。
- ダウンロードリンクにはカウント数を表示しない
- カウント数の確認は管理人のみ可能
- カウント数は日別などの詳細ではなく全ダウンロード数のみ(履歴はそもそもそう)
ダウンロードリンクにカウントを表示しないようにした為、カウントを表示させたい箇所に記述するscriptタグの記載位置は、当サイトではPHPファイル内にした為、その点についても解説。
逆に表示させたい場合は、以下のように、総ダウンロード数の他、今日と昨日の数字表示も可能なので、PHP工房さんのサイトをご覧ください。
ダウンロード~解凍
以下のページからダウンロードして下さい。
画面をスクロールすると「ダウンロードカウンター」のダウンロードリンクがあります。
ダウンロードした「download_count.zip」ファイルを解凍します。
解凍すると「download_count」ディレクトリが出来、中にはPHPファイルとdataディレクトリがあります。(dataディレクトリは空(から))
PHPファイルの設定
download.php を開き編集します。
ダウンロードファイルのアドレス設定
メディアアップロードしてあるダウンロード対象のファイルへの絶対パスを指定します。
メディア一覧から対象のファイルの詳細を開き、アドレスをコピー
以下の部分を書き換えます。
'1' => 'http://xxxxx.xxxxxx/xxxxx.zip',
50行目あたりにあります。
ダウンロード対象が複数ある場合は、最初の数字部分をカウントアップして変更しながら追記します。
'1' => 'http://xxxxx.xxxxxx/xxxxx.zip',
'2' => 'http://xxxxx.xxxxxx/xxxxx.zip',
'3' => 'http://xxxxx.xxxxxx/xxxxx.zip',
認証用ID・パスの設定
ダウンロード履歴を閲覧する為のIDとパスワードを変更します。
60行目あたりにあります。
$userid = 'XXXXX'; // ユーザーID
$password = 'XXXXX'; // パスワード
カウント表示要タグ記述
PHP工房さんの説明では設定箇所は上記2点ですが、カウントを表示させたい箇所に記述するscriptタグもPHPファイル内に記述します。
うちではページ内にカウント数を表示しない為、この方法にしましたが、
実際に履歴を表示する画面での記述が、download.phpの下の方にありますので、<head>~</head>の間に必要なタグを追記します。
256~260行目あたりにあります。
以下のタグを記述します。
※パスはご自身の環境に合わせて変更して下さい。
<script type="text/javascript" src="download_count/download.php?dsp_count=1"></script>
複数ある場合は、複数行記述します。
<script type="text/javascript" src="download_count/download.php?dsp_count=1"></script>
<script type="text/javascript" src="download_count/download.php?dsp_count=2"></script>
アップロードする
最初にこのPHPファイルを置く、サーバーの場所を決めます。
※以下、WordPressでの設置例です。
wp-content内にアップロードしますが、その中であれば、更に深い階層でもOK。
たとえば「wp-content」内に、自分でアップロードしたファイルを入れる「library」というディレクトリを設置し、その中に入れる。
wp-contentlibrarydownload_count
場所を決めたら
dataディレクトリを書き込み可能なパーミッションに変更します。
※うちでは766にしました。
この「data」ディレクトリ内に、ダウンロード番号ごとのファイルが作成され、ダウンロードされた日付ごとに1行のログが追記されていきます。
download_count_1.log
<中身>
2019/09/03,12
2019/09/02,10
….
※テキストが日付ごとに1行ずつ追加されるだけなので、ログファイルのサイズも極小。
以上で設定・準備は完了です。
ダウンロードリンクを貼る
リンクを貼りたい記事内の場所に以下を記述します。
※パス、ダウンロード番号はご自身の環境に合わせて変更して下さい。
<a href="download_count/download.php?download=1">ダウンロードはこちら</a>
「ダウンロードはこちら」の文字列ももちろん、お好きなように変更を。
ダウンロード履歴を見る
実際のカウント数を見るには、ブラウザでdownload.phpのあるアドレスを開きます。
例:https://XXXX.net/wp-content/download_count/download.php
PHPファイルに設定したIDとパスワードを入力し、閲覧画面を開きます。
ダウンロードファイルごとにカウントが集計されて日付別に表示されます。
※日付が歯抜け(無い)の場合はダウンロードが「0」
以上です。