WordPress Download Managerというプラグインがあります。
これは、その名の通りWordpressでダウンロード管理を行ってくれるプラグインです。
これを使用すれば、個々のファイルのダウンロード数などもカウントすることができます。
ただこのプラグインは、設定されているファイルのダウンロード数全てをトータルしてカウントする機能は(多分)ありません。とりあえず暗算や電卓で計算しても良いのですが、ファイル数が10や20となってくると毎回計算するんも面倒くさいです。
で先日、トータルダウンロード数を取得する方法をググって調べてみたのですが、方法が見つかりませんでした。それでも昨日、諦めきれずにいろいろ試していたら、うまくいったのでその方法をメモがてら紹介したいと思います。
photo by nrkbeta
目次
とりあえずトータルダウンロード数を知りたい場合
とりあえず全ファイルをトータルしたダウンロード数がわかれば良いという場合は、サーバーのphpMyAdminからクエリを発行して取得します。
僕は、エックスサーバーを利用しているので、それを例として今回は方法を紹介したいと思います。
まずはサーバーの管理画面下部ログインし、メニューから「phpMyAdmin」を選択します。
ユーザー名とパスワード入力が必要な場合は入力してください。
phpMyAdmin管理画面から、Wordpressデータが入っているデータベースを選択します。
すると次行の画面が表示されるので、Download Managerが使用しているテーブル「ahm_files」をクリックします。
するとahm_filesテーブルの構造が表示されます。
ダウンロード数は、「download_count」フィールドに格納されています。
「表示」タブをクリックすると、
テーブル内のダウンロード数を一覧してみることができます。
で、トータルのダウンロード数を見るには、「SQL」タブを選択します。
タブを選択すると、以下のような画面が表示されるので以下のクエリを入力して実行します。
SELECT SUM(`download_count`) as total_count FROM `ahm_files`
すると、クエリが実行され結果が以下のように表示されます。
WordPressテーマにダウンロード数を表示させる
WordPressテーマにダウンロード数を表示させるのも簡単で、テーマの表示させたい場所に以下のコードを書き込むだけです。
<?php //WordPress Download Managerのトータルダウンロード数を表示 $r = $wpdb->get_results("SELECT SUM(`download_count`) as total_count FROM `ahm_files`"); if ($r) { echo 'トータルダウンロード数は、'.$r[0]->total_count.'です。'; }?>
WordPress上で直接クエリを発行し、SQLのSUM(合計)関数を用いて、トータルダウンロード数を取得し、表示しています。
テーマの埋め込んだ箇所には、以下のように表示されます。
WordPress投稿本文に表示させる
テーマテンプレートだけではなく、投稿本文にトータルダウンロード数を表示させたい場合は、ショートコードを利用します。
ショートコードを利用するには、まずfunctions.phpに以下のようなコードを追加します。
//WordPress Download Managerのトータルダウンロード数を表示するショートコード function dm_total_download_count() { global $wpdb; $r = $wpdb->get_results("SELECT SUM(`download_count`) as total_count FROM `ahm_files`"); if ($r) { return '<p>トータルダウンロード数は、'.$r[0]->total_count.'です。</p>'; } } add_shortcode('dm_total', 'dm_total_download_count');
そして、Wordpressエディターなどから、以下のようにショートコードを入力します。
[dm_total]
すると、本文中の好きな場所にトータルダウンロード数を表示することができます。
まとめ
今回は、WordPress Download Managerプラグインのトータルダウンロード数を取得する方法を紹介しました。
Download Manager自体を利用している人が少なく需要が低いため情報もないのだと思いますが、もし「トータルダウンロード数を知りたい」なんて場合は、今回の方法を試してみてください。