*

WordPressのDownload Monitorでショートコードを使わずにダウンロード数をページに表示する

公開日: : WordPress

ダウンロードモニター

WordPress のプラグインに「Download Monitor(ダウンロードモニター)」というファイルのダウンロード数をカウントできるものがあります。登録したファイルがどれだけダウンロードされたのか、いつダウンロードされたのかという事がわかります。

Download Monitor がどのようなプラグインなのか詳細は他サイトにお任せするとして、ここではより踏み込んだことをお話します。

ページにダウンロード数を表示する方法

Download Monitor はダウンロード数をカウントするだけではなく、ページに表示する事も可能です。

Download Monitor の設定からデフォルトテンプレートを変更する事で、ダウンロードリンクをただのリンクにするのか、ボタンにするのか、ボックスにするのか、ダウンロード数を表示するかなど変更する事ができます。しかし、これは WordPress の投稿画面でショートコードを使った場合のみ有効な事です。

[download id="3998"]

ショートコードとは上記のようなものです。通常ショートコードは投稿画面でしか使えません。投稿画面以外の場所(テーマの個別投稿テンプレートなど)ではショートコードが使えないのでダウンロードリンクを作るには以下のような URL をリンク先に設定します。

http://www.url.com/download/3998/ (デフォルト設定の場合)

これで投稿画面以外にもダウンロードリンクを作る事ができますが、今回本題とする事は投稿画面以外でダウンロード数を取得しページに表示するという問題です。Google 検索で調べても有用な情報はなかったので自分で研究するしかないと思いました。

ダウンロード数はどこで管理されているのか?

ダウンロード数を取得するにあたっては、ダウンロード数はどこで管理されているのかを知る必要があります。恐らくデータベース内かと思って、phpMyAdmin でデータベース内を覗いて Download Monitor のテーブルを調べてみました。

なかった!!

ダウンロード ID やファイル名などの情報はデータベースに登録されていましたが、ダウンロード数はどこにもありませんでした。一体にどこにダウンロード数があるのか…。

次に投稿画面でショートコードではダウンロード数が表示できるので、ショートコードの中身を覗いてみました。WordPress の管理画面からプラグインを開き、プラグイン編集を選択します。画面右上の「編集するプラグインを選択」から Download Monitor を選び「content-download-button.php」にショートコードの中身があります。

どうやら get_the_download_count() という関数でダウンロード数を取得しているようです。しかしそのような関数は WordPress のものではなくプラグイン独自のものです。もうプラグインファイルを1から調べて get_the_download_count() という関数を見つけるしかありません。

WordPress のプラグイン編集で Download Monitor のプラグインファイルを上から順番に調べて get_the_download_count() 関数を探しました。すると「class-dlm-download.php」というファイルで見つける事ができました。

return absint( $this->get_file_version()->download_count );

download_count という変数にダウンロード数が入っていそうですが、これがどこでダウンロード数が入れられるのかわかりませんでした。半分諦めかけましたが今度は「download_count」という変数を虱潰しにまた1から探しました。すると「class-dlm-download-version.php」というファイルに increase_download_count() という関数を見つけました。訳すとダウンロード数を増加するという関数です。まさしく探していたのはこれです!

この関数の中には次のような記述がありました。

get_post_meta( $this->id, ‘_download_count‘, true )

get_post_meta?これでピンときました。get_post_meta 関数はカスタムフィールドの値を取得する関数です。まさか、カスタムフィールドにダウンロード数が管理されていたとは…。

しかし、投稿画面に「_download_count」というカスタムフィールドはありませんでした。

よく調べてみると、WordPress の管理画面でダウンロードの「すべてのダウンロード」を開き、登録ダウンロードファイルの編集をすると、ダウンロード可能なファイルの所にダウンロードカウント数が記録されている箇所がありました。恐らくここが「_download_count」というカスタムフィールドなのでしょう。

ショートコードを使わずダウンロード数を取得する方法

ここまでをまとめますと、Download Monitor でショートコードを使わずにダウンロード数を取得しページに表示するには以下のようにします。

get_post_meta( ダウンロードID, ‘_download_count‘, true )

ダウンロードID とは、DownloadMonitor で登録したダウンロードファイルに割り当てられている ID の事です。WordPress の管理画面でダウンロードの「すべてのダウンロード」で確認する事ができます。これで各ファイルのダウンロード数を取得する事ができるのです。ページに表示するには echo などで出力しましょう。

  • Pocket

おすすめトピックス

関連記事

WordPress管理画面の固定ページの属性の中にテンプレートが表示されないのは何故?

WordPress の固定ページの新規作成画面にテンプレートのドロップダウンメニューがない事に気が付きました。固定ページのテンプレートとは、固定ページに独自のデザインを適用するためのものです。WordPress をカスタ […]

wordpressサイト高速化
【WordPress】画像を最適化でサーバー容量削減!「EWWW image optimizer」が便利すぎ

遅いサイトと速いサイト、どっちが良いですか?と聞かれたら、それは多分速いサイトと答える人が圧倒的なのではないかと思います。ウェブサイトを見る人にとっても検索ロボット(クローラー)にとってもね。 サイトを表示するまでの早さ […]

全記事一覧
WordPressで全記事一覧と投稿日を一緒に出力する方法

WordPress を使う前は Movable Type や Serene Bach を使用しておりましたが、その時は対して苦労しなかった「全記事一覧と投稿日を一緒に出力する」事が WordPress では結構実現に手間 […]

知識不要!簡単にWordPressに画像スライダーを付けられる「Easing Slider」の使い方

ウェブサイト上で一枚の画像が次々と切り替わっていくものを画像スライダーとかスライドショーと言います。企業サイトや個人サイトでも至るところで見かけるようになりました。 このスライドショーは色々なタイプの物が jQuery […]

WordPressでリンク元によってデザインを変える、phpでリンク先に変数を送る方法

ちょっと変わったケースの依頼で1つの WordPress に2つのサイトを共存させ、一部ページは2つのサイトで共通に使いたいというものがありました。ようするに1つの WordPress 管理画面で2つのサイトを管理したい […]

常時SSL
wpXが無料でWordPressの常時SSL機能を提供開始!簡単にhttps化できちゃいます

SSL という言葉は馴染みがないかもしれませんが、https という言葉なら見たことがあるでしょう。ウェブサイトの URL の始まりは「http://」か「https://」のどちらかです。普通のサイトなら前者の方が多い […]

著者について

名前:Azell
作曲したり風景写真撮ったりWeb制作したりする人です。 好きな事を楽しくブログに綴れていけたらと思います。

フォローはこちら

       

       
Aipo8.1.1オープンソース版で2018年の祝日設定を行う(さくらのVPS)

オープンソース版の無料グループウェア「Aipo」のサポートが2

タイヤのホイールナットが緩んで紛失、1個で買う方法はあるか

車の発進時や曲がる時にわずかなゴリッという音がする事に気づいて

高速道路
高速道路の上りと下りってどっち方面?全国高速道路総まとめ

高速道路には進行方向によって「上り」と「下り」という表現があり

名古屋久屋大通(丸の内)の「Cafe One」で居心地良い空間でおうちごはんランチ

名古屋観光で名古屋テレビ塔と久屋大通公園を見に行った際にランチ

豊田合成リンク
名古屋栄の豊田合成リンクで氷じゃないスケートリンクで滑ってきた感想

名古屋市の栄に氷じゃないスケートリンクがあるという話を連れに聞

→もっと見る