WordPressあるあるネタとして、外観テーマを変更するとプラグイン設定が引き継がれず、デフォルト表示に戻ってしまう。
分かっていても、ついついハマってしまうので、またメモとして残しておくことに。
「Download Monitor」は、WordPressで作成されたホームページで簡単にダウンロードファイルを管理できるプラグイン。
ここのサイトでも、フリーソフトのzipファイルをダウンロードするリンク作成や、ダウンロード数表示で活用している。
デフォルト表示は、シンプルでリンクと単純に総ダウンロード数だけを表示する。
だけど、フリーソフトに不具合などあったとき、旧バージョンもダウンロードできるようにしておきたい。
なので、バージョン、公開日、サイズ、ファイル名、ダウンロードカウンタを表示させていた。
この表示に戻す方法をメモ。
- WordPressにログイン
- 「Download Monitor」プラグインが無い場合はインストール
- 「ダウンロード」>「設定」メニューを開く
- 「一般」タブ内の「デフォルトテンプレート」で「カスタムテンプレート」を選択
- 「カスタムテンプレート」で「custom」と記入
※customでなく別文字列でもOK - カスタム用のファイル(content-download-custom.php)を作成
※下記ソース参照
※ファイル名は「content-download-<カスタムテンプレート名>.php」 - 作成したファイルを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();