Custom Field GUI Utility で拡張子が大文字の画像ファイルを挿入するときの不具合の対処法

当ブログで公開している WordPress のカスタムフィールドを便利に使うプラグイン - Custom Field GUI Utilityについて、イメージフィールド(imagefield)にサムネイルを挿入する際、元画像ファイルの拡張子が大文字だった場合に、環境によっては不具合が起こるようです。...

当ブログで公開している WordPress のカスタムフィールドを便利に使うプラグイン - Custom Field GUI Utilityについて、イメージフィールド(imagefield)にサムネイルを挿入する際、元画像ファイルの拡張子が大文字だった場合に、環境によっては不具合が起こるようです。

不具合について

どのような不具合かは、moto さんにいただいたコメントが非常に丁寧なので引用させていただきます。

画像をアップロードした際、サムネイル・大・中の画像が生成されますが、その生成された画像の拡張子は小文字になります(元画像が大文字の拡張子でも)。

しかし、「サムネイルの URL」をクリックして「リンクURL」に画像のURLを入力すると、元画像の拡張子を引き継いでしまうようです。

つまり、

  • アップロード画像・・・拡張子が大文字
  • 生成される画像・・・拡張子が小文字
  • 挿入されるリンクURL・・・拡張子が大文字

ということになり、リンク切れを起こしてしまいます。

拡張子が小文字の場合は問題ないので変更すればよい話なのですが、更新する者がPC初心者のため、拡張子が大文字でも大丈夫なように出来る対策があればお教えいただけると大変助かります。

Custom Field GUI Utility 2.1.0 - アップデート - テキストフィールドにデフォルト文字を入れる機能を追加

試してみましたが、この現象は、サーバーの環境によって起こったり起こらなかったりするようです。

つまり、サーバーの環境によってサムネイルの拡張子が大文字のままだったり、小文字に変換されてしまったりするようなのです。

したがって、アップデートは行わず、対処法を伝えることで対応したいと思います。

対処法

rc-custom-field-gui.js の289、290行目あたりに次のような2行があると思います。

var thumb_url = jQuery(this).prevAll('button.urlfile').attr('title');
 thumb_url = thumb_url.replace(/(\.[a-z]{2,5}$)/i,(thumb_size) + '$1');

この2行を次のような4行に書き換えれば大丈夫だと思います。

var thumb_url = jQuery(this).prevAll('button.urlfile').attr('title');
var thumb_ext = thumb_url.match(/\.[a-z]{2,5}$/i);
 thumb_ext = thumb_ext[0].toLowerCase();
 thumb_url = thumb_url.replace(/(\.[a-z]{2,5}$)/i,thumb_size + thumb_ext);

お試しください。以上です。

Published 2009-11-25
Updated 2019-06-25