WP-DownloadCounter V2 日本語表示版
説明
WordPress 上でダウンロードファイルを管理するプラグインが WP-DownloadCounter です。ショートコードが使え、ダウンロード履歴も見れます。非常にシンプルで最低限の機能だけが欲しい人向けです。
問題点
最終更新年月日は7年前です。動かしてみると不具合もチラホラ(汗。以下の問題が有りました。
- 日本語には未対応。英語、イタリア、フランス、中国語には対応してる。
- ダウンロードファイルのサイズを表示する[ downloadsize(downloadname) ] ショートコードが不良でゼロを返す。
- 管理画面の「削除」ボタンを押す前に「リセット」ボタンを先に押す必要があります。そうしないと削除するダウンロード履歴がデータベース内に永遠に残ってしまいます。
- 日本語化ファイルを作りたいが多言語化のロジック部分に不備な部分がいくつか存在する。
- 管理画面にある「リセット」と「削除」ボタンは、実行前の確認は無く、即座に実行されます。誤ってクリックすると泣きます。(経験者
- 仮にダウンロードファイルが存在しない場合、記事内でファイルの最終更新日[ downloadupdated(downloadname) ]のショートコードは扱っていると本文が表示されなくなる。対処方法:更新日時は自分で記入する。
対応
問題点の1~4までは対応出来ました。その結果のファイルを公開します。
ダウンロード : WP-DownloadCounter 1.01 V2 日本語表示 (27.6 KB, 作成 2016年5月2日)
- 動作環境:WordPress 4.4.2
上記のファイルには「WP-DownloadCounter 1.01 」のバグ修正したファイルと日本語化ファイルが一式入っています。
なお、上記のダウンロードファイルを使う時は事前に ReadMe-JP.txt を読んでからご使用ください。読んで承諾できない方はご使用をご遠慮ください。
アップデート
「WP-DownloadCounter 1.01 」プラグインをアップデートします。手順は、
- WP-DownloadCounter プラグインのインストールフォルダごと全ファイルをバックアップします。
- 上記でダウンロードしたファイルを使って「WP-DownloadCounter 1.01 」プラグインのインストール先フォルダに上書きアップデートします。
フォルダ:「\wp-content\plugins\wp-downloadcounter\」
上書きするファイルの一覧:
- downloadcounter-config.php
- downloadcounter-options.php
- langフォルダ
- wp-downloadcounter-zh_CN.po
- wp-downloadcounter.pot
- wp-downloadcounter-fr_FR.mo
- wp-downloadcounter-fr_FR.po
- wp-downloadcounter-it_IT.mo
- wp-downloadcounter-it_IT.po
- wp-downloadcounter-ja.mo :日本語
- wp-downloadcounter-ja.po :日本語
- wp-downloadcounter-zh_CN.mo
ショートコードの使用例
記事投稿のテキスト:
ブラウザで表示:
バグ修正情報:Bug fixing
当プラグインは既に7年以上も更新されていません。前にも書きましたが、現時点(2016/3/27)の WordPress 4.4.2 では記事内にダウンロードファイルのサイズを表示するショートコードが不良でゼロしか返さない不具合が有ります。
- ショートコード:[ downloadsize(downloadname) ]
修正前
function get_filesize($url) { if ($this->is_local_file($url)) { $path = realpath(ABSPATH . str_replace(get_option('siteurl'), '', $url)); $size = filesize($path); } else { $size = $this->urlsize($url); } return $size; }
修正後
function get_filesize($url) { static $regex = '/^Content-Length: *+\K\d++$/im'; if (!$fp = @fopen($url, 'rb')) { return false; } if ( isset($http_response_header) && preg_match($regex, implode("\n", $http_response_header), $matches) ) { return (int)$matches[0]; } return strlen(stream_get_contents($fp)); }
ココを参考に修正をしました(感謝)。上記はプログラミングの基本的な書き方に従ってません。日本語化ファイルを適用させる事を考慮して、前後の行位置が変更されない様に詰めて書いてあります。
不慣れな人の為に修正を行った downloadcounter-config.php ファイルを日本語化ファイルに同封してあります。
場所:/wp-content/plugins/wp-downloadcounter/ フォルダ
リンク
最後に
「WP-DownloadCounter 1.01 」プラグインはシンプルで非常に気に入っています。しかしバグはダメですね。それで自分で修正しました。時間と相談しながら、出来る部分はやってみました。しばらくは無理です。