WordPress「Download Monitor」プラグインのカスタマイズ

WordPressあるあるネタとして、外観テーマを変更するとプラグイン設定が引き継がれず、デフォルト表示に戻ってしまう。

分かっていても、ついついハマってしまうので、またメモとして残しておくことに。

「Download Monitor」は、WordPressで作成されたホームページで簡単にダウンロードファイルを管理できるプラグイン。

ここのサイトでも、フリーソフトのzipファイルをダウンロードするリンク作成や、ダウンロード数表示で活用している。

デフォルト表示は、シンプルでリンクと単純に総ダウンロード数だけを表示する。

だけど、フリーソフトに不具合などあったとき、旧バージョンもダウンロードできるようにしておきたい。
なので、バージョン、公開日、サイズ、ファイル名、ダウンロードカウンタを表示させていた。

 

この表示に戻す方法をメモ。
 

  1. WordPressにログイン

  2. 「Download Monitor」プラグインが無い場合はインストール

  3. 「ダウンロード」>「設定」メニューを開く

  4. 「一般」タブ内の「デフォルトテンプレート」で「カスタムテンプレート」を選択

  5. 「カスタムテンプレート」で「custom」と記入
    ※customでなく別文字列でもOK

  6. カスタム用のファイル(content-download-custom.php)を作成
    ※下記ソース参照
    ※ファイル名は「content-download-<カスタムテンプレート名>.php」

  7. 作成したファイルをFTP等でアップロード
    アップロード先は、<サイトのルート>/wp-content/plugins/download-monitor/templates/

これでOK。

ソース:

<?php
/**
 * List of versions
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
} // Exit if accessed directly

/** @var DLM_Download $dlm_download */

$versions = $dlm_download->get_versions();

if ( $versions ) : ?>

    <table width="100%" border="1">
        <tr>
            <th>バージョン</th>
            <th>公開日</th>
            <th>サイズ</th>
            <th>ファイル</th>
            <th>カウンタ</th>
        </tr>

        <?php
        /** @var DLM_Download_Version $version */
        foreach ( $versions as $version ) {

            // set loop version as current version
            $dlm_download->set_version( $version );
            ?>

            <tr>
                <td><?php echo $version->get_version_number(); ?></td>
                <td><?php echo date_i18n( get_option( 'date_format' ), $dlm_download->get_version()->get_date()->getTimestamp() ); ?></td>
                <td><?php echo $dlm_download->get_version()->get_filesize_formatted(); ?></td>
                <td><a href="<?php $dlm_download->the_download_link(); ?>" rel="nofollow"><?php echo $dlm_download->get_version()->get_filename(); ?></a></td>
                <td><?php echo $dlm_download->get_download_count(); ?></td>
            </tr>

        <?php
        }
        ?>
    </table>

<?php endif; ?>

 
 

<2024/7/20 追記>
「Download Monitor」プラグインをバージョンアップ更新したら、1件目だけダウンロード数が異常に増えて表示されるようになったので、最新版を利用する場合は以下のコードに修正してみてください。
プラグイン側で修正される可能性もあるため、上記ソースも一応残しておきます。

修正後ソース:

<?php
/**
 * List of versions
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
} // Exit if accessed directly

/** @var DLM_Download $dlm_download */

$versions = $dlm_download->get_versions();

if ( $versions ) : ?>

    <table width="100%" border="1">
            <tr>
                <th>バージョン</th>
                <th>公開日</th>
                <th>サイズ</th>
                <th>ファイル</th>
                <th>カウンタ</th>
            </tr>
        <?php foreach ( $versions as $version ) :
            $dlm_download->set_version( $version ); ?>
            <tr>
                <td><?php echo $version->get_version_number(); ?></td>
                <td><?php echo date_i18n( get_option( 'date_format' ), $version->get_date()->getTimestamp() ); ?></td>
                <td><?php echo $version->get_filesize_formatted(); ?></td>
                <td><a href="<?php $dlm_download->the_download_link(); ?>" rel="nofollow"><?php echo $version->get_filename(); ?></a></td>
                <td align="right"><?php echo number_format($version->get_download_count()); ?></td>
            </tr>
        <?php endforeach; ?>
    </table>

<?php endif; ?>

 
ダウンロード数を取得する処理を以下の通り変更していますが、ついでに他の行も微調整しています。
変更前:$dlm_download->get_download_count();
変更後:$version->get_download_count();

← ブログ一覧へ戻る