コンテンツ配布用のプラグインを「Simple Download Monitor」から「Download Monitor」に変えた理由

公開日:2024(令和6)年1月18日/最終更新日:

,
WordPressのおすすめプラグインの画像

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています



当サイトでは、これまで長らく訪問者に何かのファイルを提供する際に、「Simple Download Monitor」というプラグインを使って管理していました。

これはこれで秀逸なプラグインで、本当にありがたく使わせていただいていたのですが、令和6年1月以降、「Download Monitor」というプラグインへ変更して管理することとしました。

本ページでは、あまたある、何かのファイルを提供するためのいわゆるダウンロード系プラグインの中からなぜ「Download Monitor」を使用することにしたのかを、プラグイン選びのヒントとして紹介しておこうと思います。

「Download Monitor」が他のプラグインよりも秀逸だと思う点

以下が「Download Monitor」へ変更することを決めた大きな2つの理由です。今まで使っていた「Simple Download Monitor」との違いという観点で述べますが、他のプラグインでも同様のことがあるかも知れませんので、導入時に確認することをおすすめします。

1.直リンクの防止

どちらのプラグインも、ダウンロード用のコンテンツ(カスタム投稿タイプ)を作り、ショートコードなどでボタンを表示させたり、リンクURLをWordPress標準のボタンなどに設定してダウンロードコンテンツの提供ができる仕組みになっています。

「Download Monitor」が秀逸なのは、リンク元(リファラー)が同一ドメイン(サイト)でなかった場合に、トップページへ遷移させる機能があることです。

この機能は「Download Monitor」の設定画面で指定できます

この機能がないとどうなるのかは、複数のドメインでサイトを管理している方であれば、他のサイトへ、ダウンロードボタンのURLを張ったリンクを作成してみることで確認できます。

1つのドメインしか持ってないという方は、当サイトで何かをダウンロードするボタンのリンクURLを自身のサイトや無料ブログなどへテキストリンクなどに設定してクリックしてみても確認できますよ!

実際にやってみると...この機能がないと、ダウンロードコンテンツを管理していないサイトからでも、ダウンロードができてしまうんです。しかも、本当のダウンロード用のページへは一切アクセスしなくてもできてしまうんです。

つまり、第三者があたかも自身で作成したツールなどとして紹介して、あたかもそのサイトで配布しているファイルかのようにダウンロードさせることができるようになってしまうのです。

悪い言い方すれば、ファイル泥棒ができるということです。しかも、泥棒サイトへダウンロードしたファイルをアップロードして提供するわけではないので、著作権や所有権といった法的な対処が難しく、「やめてくれ」と言うのが限界となってしまう可能性が高いのです。

こうした迷惑行為を「Download Monitor」では、たった一つの設定で防ぐことができます。

設定は、管理画面の「ダウンロード」→「設定」を開き、下図のように「ホットリンクの防止」のスイッチをオンにするだけです。

「Download Monitor」プラグインのホットリンク防止機能

2.ファイル自体のセキュリティ

前述したように、ダウンロード系のプラグインは、簡単に言えばカスタム投稿タイプを使って別の投稿へのリンクとして挿入し、クリックされたら登録されているファイルのダウンロードが始まる仕組みなので、元のファイル(メディアにアップロードしたファイル)のURLが表立つことはありません。

しかし、何かの理由でメディアのURLが漏洩してしまうと、前項のパクリリンクのように勝手に直リンクされ、しれっと「ここからダウンロードできます」みたいに紹介され、ファイルのみ奪われるという事態が発生しかねません。

経験上では、検索エンジンやその他のBOTなどがファイルそのものにアクセスしているログがいくつもありますから、どこかには漏れているのでしょう。

「Download Monitor」では、メディアの編集からファイルそのものへの直接アクセスに対する拒否設定ができ、アクセスされた場合にはアクセス拒否(403エラーを返す)されるようにできるので、ファイルへの直リンクを防ぐことができます。

仕組みとしては、メディアにアップロードされたファイルを別の場所へ移し、そこにアクセス拒否をかけると同時に、ファイルのURLも通常とは違うものになるため類推されにくくなり、いつでも設定/解除ができるようになっています。

既に「Download Monitor」でダウンロードコンテンツをいくつも作ってしまっているという方も、以下の手順でこの設定を適用させることができます。

  1. メディアからダウンロードしてもらうファイルの編集画面を開く
  2. 画面中ほどにある「DLM protect file」という項目のボタンをクリックする
  3. メディアに戻り、対象ファイルのURLをコピーする
  4. 既存のダウンロードコンテンツを開き、カスタムURLとして3のURLへ変更する

なお、この機能では、「DLM protect file」というボタンをクリックすると、ダウンロードコンテンツが自動生成されるようになっているので、必要なければ削除してください。

ちなみに、「DLM protect file」ボタンはこんな感じで表示されます。

「Download Monitor」プラグインのメディア保護機能

以上が、「Simple Download Monitor」から「Download Monitor」に切り替えた理由です。

この点を除けば「Simple Download Monitor」も本当に使いやすいプラグインなので、どちらを使うかはじっくり検討ください。

ただ、「Simple Download Monitor」の場合は、ダウンロードコンテンツ自体が公開状態になっているので、どこかにダウンロードボタンを設置するという利用方法の場合は以下のページを参考に、「Simple Download Monitor」が生成するページへのアクセスをリダイレクトさせておくとよいでしょう。

QA Analytics QA Analytics

「Download Monitor」のテンプレートカスタマイズ方法

最後におまけとして、「Download Monitor」プラグインで独自のテンプレートを作ったり、必要な情報だけを出力するような使い方をしたい場合のカスタマイズ例を紹介しておきます。

例として、本サイトで配布している「Hima Art Utility」というプラグインのダウンロードコンテンツ(ボタン)は、以下のような形で表示しています。

最新バージョン 5.1 (2024年11月 5日リリース)

累計ダウンロード数:155回

バージョン4.9以前と5.0以降とで仕様が大きく変わっています。バージョン4.9以前をご利用の場合はアップデート後、設定をし直していただく必要があります

「Download Monitor」プラグインには、「Simple Download Monitor」のように何かの情報のみを表示させるショートコードがなく、もともとボタンはWordPress標準ボタンにダウンロードリンクURLを与えていたので、ボタン部分はそのままにし、「Download Monitor」標準のショートコードで、ダウンロード数に関するものだけを出力させるようにテンプレートを変更しました。

従って、以下のようにして構成したものを、パターンに登録し、更新情報ページなどへ挿入して使用しています。

  1. ダウンロードボタンは、WordPress標準のボタンに、「Download Monitor」のリンクURLを付与
  2. 段落ブロックでバージョンやリリース日を表示
  3. 「Download Monitor」へカスタムテンプレートを設定し、ダウンロード数をショートコードで表示

つまり、上記ダウンロードコンテンツ部分の「このファイルは 〇〇 回ダウンロードされています」という部分を、以下のような「Download Monitor」標準のショートコードで出力するようにしているのです。

[download id="〇〇"]

このように「Download Monitor」標準のショートコードでどんなコンテンツを出力するかは、設定画面で選択できますが、今回のようにカスタムテンプレートを設定することもできますので、必要なものだけ(逆に不要なものを除いて)独自の表示をさせたい場合には、以下のようにして設定してください。

1.カスタムテンプレート用ファイルを用意する

「Download Monitor」のテンプレートは、「content-download-〇〇」という命名規則を持っています。

例えば設定で「デフォルト」を指定した場合のテンプレートは「content-download.php」が読み込まれ、「ボタン」を指定した場合は「content-download-button.php」が読み込まれるといった具合です。

テンプレートの一覧はプラグインフォルダ内の「template」フォルダの中にあります

そして、カスタムテンプレートを使うように指定することで、標準のショートコードが挿入された場所ではカスタムテンプレートの内容が表示されるようになっていますので、以下のようにしてカスタムテンプレートを設置・指定していきます。

  1. パソコン上で「content-download-custom.php」というファイルを作成する
  2. 有効化しているテーマフォルダ内へ1をアップロード
  3. 「Download Monitor」の設定画面で以下のように指定
    • デフォルトテンプレートを「カスタム」に指定
    • 「カスタムテンプレート」欄に「custom」と指定

下図は設定画面で「content-download-custom.php」を指定する場合の設定例です。

「Download Monitor」のカスタムテンプレート設定

ただ、この状態だとテンプレートは空なので、ショートコードを入れた場所は空白(何も表示されない)になりますから、次項のようにカスタマイズしていくといいでしょう。

2.プラグイン標準のテンプレートをコピーして編集する

「Download Monitor」のテンプレートは、プラグインフォルダの「template」フォルダの中にありますから、ひとまず「content-download-button.php」を開いて、内容をテーマフォルダの「content-download-custom.php」へコピーしてみましょう。

すると、設定画面で「ボタン」を選択したものと同じものが表示されるはずです。

あとは、必要な内容だけを残したり、CSSクラスを変更したりして、独自のものへ変えればOKです。

ちなみに、私のように、「このファイルは 〇〇 回ダウンロードされています」という表示だけしたい時は、「content-download-custom.php」を以下のようにします。

<?php
/**
 * Download custom
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
} // Exit if accessed directly
?>
<div class="ha-dlm-dl-cont" style="text-align:center;">
	<?php printf( esc_html(_n( 'このファイルは 1 回ダウンロードされています', 'このファイルは %d 回ダウンロードされています', $dlm_download->get_download_count(), '' )), absint( $dlm_download->get_download_count() ) ) ?> 
</div>
<?php

なお、設定画面には

デフォルトの[download]ショートコードで使われるテンプレートを選択してください。(この設定は format 引数で上書きできます。)

と書かれていますが、ショートコードにこの引数を使ってもフォーマットの変更はできないようでした(ひょっとするとカスタムテンプレートを追加するとダメなのかと思い削除してみましたがやはりだめでした..)。

レポートについてはちょっと使いにくいかも..

ここまで「Download Monitor」プラグインのいいところを紹介してきましたが、無料版のレポートで表示できる情報はかなり限られていて、有料アドオンを使わないと詳細な情報を見るのは難しいです(ちなみに私は有料版を使ったことはありません)。

無料版のみで利用するのであれば、この点は「Simple Download Monitor」の方がよいと感じますが、私のように、ダウンロードコンテンツの管理がしたい、ダウンロードされた総数のみ知りたいという場合には事足りるのではないかと思いますが、以下の点が気になる方は使用するかを考えた方がいいかも知れません。

「Download Monitor」のレポートデータは管理画面から削除できない

最近使い始めたのでよく知らないのですが、「Download Monitor」は、バージョン4.6より前までは、カスタムフィールドを使ってダウンロード数の計測とレポート化をしていたようですが、それ以降はデータベース内に別のテーブルを作って管理するようになったようです(詳しくはこちらを参照)。

それに伴って、4.6以前のカスタムフィールドデータを現行のテーブルへ参入する補助プラグインもリリースされています。

カスタムフィールドであれば、編集画面から簡単にデータの削除などができそうですが、テーブルとなると、サーバーのデータベース編集から直接削除を行うしかないようです(これは公式のドキュメントにも書かれています)。

恐らく仕様が固まれば削除機能が実装されると思いますので、じっと待つのがよさそうな感じです。

DIYで削除したい!とお考えの方は以下参考にされてはどうでしょうか?(考え方だけで実際に行ったものではありませんので自己責任で!)

ダウンロード履歴データの格納先と削除方法(例)

どこにどのようなデータがあるのか?

現在の現行バージョン(4.9.6)で、データを見る限りでは、以下のような形で各テーブルおよびカスタムフィールドにデータが格納されているようです。

  • 「download_log」テーブル・・・ダウンロード履歴の生データ
  • 「dlm_reports_log」・・・日ごとの各ダウンロードコンテンツのダウンロード数
  • 「dlm_downloads」・・・各ダウンロードコンテンツのダウンロード数合計
  • 「_download_count」カスタムフィールド・・・手動設定でのダウンロード数

ダウンロードログの削除手順(考)

再度書きますが、この措置は実際に行ったものではなく、あくまでもデータという観点からこうすればいいのでは?という推察として掲載しています。実際に実行するかどうかは自己責任で、トラブル発生時の対処もご自身でお願いします(当方では一切責任を負いません)

履歴のデータそのものについては、「download_log」「dlm_reports_log」「dlm_downloads」の各テーブルのデータを削除することで、レポートをクリアすることができそうです。

注意すべきは、総ダウンロード数です。これは、ボタン表示した際のダウンロード数、管理画面の一覧上に表示されるダウンロード数、個々のダウンロードコンテンツ編集画面に表示される「〇件のダウンロード」の部分に反映されていて、この数字は、「dlm_downloads」と「_download_count」の合計数が計算されて表示されるようになっていると思われます。

従って、各ダウンロードコンテンツの総ダウンロード数を維持したままレポートデータを削除するには、以下のようにすることが必要でしょう。

  • 編集画面に表示されている「〇件のダウンロード」の数字を手動設定の数字へ入力して更新
  • 各レポートテーブルのデータを削除

こうすることで、その後の総ダウンロード数は改めて設定した手動ダウンロード数+その後のダウンロード数になるので、誤差は少なくなると思います。

最後に念を押しますが、よほどダウンロードが頻繁に行われるようなサイトでない限り、このレポートのデータ形態がサイト表示のパフォーマンスに影響することは少ないと思いますので、プラグイン自体に削除機能が実装されるのを待つか、削除せずにそのまま運営することを強くおすすめします



Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPressのトラブル対処方法の画像
Download Monitorプラグインで別の場所から翻訳が上書きできなかった件(解決済)