WordPress Download Monitor「Download id not defined」と表示されるバグを発見

研究室の論文リストなどを管理するために、Wordpressのダウンロードページを管理する「download monitor」というプラグインを使っている。

フォーマットを定義すると論文の詳細なども表示できるので便利なのだけど、最近何かがおかしい…。

wordpress.org/support/plugin/download-monitor

Publications

一部の論文において、「Download id not defined」と表示されてしまう。

  • [相模原市市民協働事業] [Download id not defined]
  • [相模原市市民協働事業] [Download id not defined]

スクリーンショットだとこんな感じ

ちなみにソースにはこんな感じに書いてある。

  • [相模原市市民協働事業] [Download id not defined]
  • [相模原市市民協働事業] [Download id not defined]
  • [相模原市市民協働事業] [Download id not defined]

スクリーンショットやページを見てもわかるように、動いているものと動いていないものがある。ソースをよく確認して、コピペしてみても再現性があったりなかったりで、よくわからないが、ビジュアルエディタの「↓」ボタンから生成した場合は正しい動作をするようだ。

dl

実際の動くコードがこれ
{meta-authors}, "{title}", {meta-publication} {meta-pubdate} - [PDF]
動かないコードがこれ
{meta-authors}, "{title}", {meta-publication} {meta-pubdate} - [PDF]

この動くコードと動かないコードの間には、何か目に見えない霊的なものがあるのだろう…。

ghostinthespace

いやいやいや…テキストエディタで検索してみますよ?

a020

上の緑の検索対象が動かないコード、下の反応がないコードが動くコード。

目では見えないのですが、Unicodeの「a0」、HTMLでいうところの&nbsp(non-break space)が、半角空白「20」の代わりに入っている行が動かないようです。前は動いたのに!

とりあえず作者(Never5, Barry Kooij, Mike Jolley)にバグレポートを出してみよう…。
「a0使うな!」で終わりそうだけど。

<余談>

Download Monitorには旧バージョンのデータを変換するツールも提供されているので最初はこれかなと思ったわけです。結局使わなかったけど、これって本体のAdminページに仕込まれている変換ツールと何か違うのかな?
www.download-monitor.com/extensions/dlm-legacy-importer/

Old download shortcodes containing download IDs will mismatch after import because of the new data structure. Whilst active, the legacy plugin will step in if a legacy download ID is called, however it is recommended that you update your content with new IDs to prevent errors.

Evernoteが半角スペースを勝手に0xa0に変換するなんてこともあるようです。
■ ソースコード中に0xC2A0(UTF-8のNO-BREAK SPACE)が混ざり実行できなくて困った話 kk_Atakaの日記
d.hatena.ne.jp/kk_Ataka/20130826/1377527170

■ ASCIIコード変換器
web-apps.nbookmark.com/ascii-converter/