問題
WordPress 4.9.5 (Lightning テーマ)を使っています。
[メディア]から[20180408.slide.pdf]のような名前のファイルをアップロードすると,勝手に[20180408.slide_.pdf]のように末尾にアンダーバー(_)がついてしまいます。
1個目のピリオドの後に,2-5文字ある場合勝手にアンダーバーがつくようです([x.xx.pdf]〜[x.xxxxx.pdf]はアップロード後に_がつく)。
1個目のピリオドのあとが,1文字,または6文字以上の場合は大丈夫でした([x.x.pdf]〜[x.xxxxxx.pdf]はアップロード後に_がつかない)。
まず,他の方の環境で再現するかどうか教えていただきたいです。そして,末尾に_がつかないようにするいい対処方法はないでしょうか?
現状の対処
WordPressのメディアは[添付ファイルのページ]ができる都合,グローバルな名前空間なので,先頭にYYYYMMDD.というプレフィクスを付けて(構造体のように)階層を識別したいのです。
区切り子に.ではなく,_を使えばいいかもしれませんが,_や-は元ファイルに使われていることがよくあるので避けたいのです。
現状は,アップロード後にwp-content/uploadsにアップロードされたファイルを手動でリネームして,DBもリネームして対応しています。
おそらく,アップロード時のメディアのファイル名にsanitize処理が入っていて,こうなるのだと思います。
add_actionやadd_filterで何かうまい具合に対応できるなら,それでもかまいません。
どうぞよろしくお願いします。
追記
WordPressデフォルトテーマのTwentySevenTeenでも再現しました。なお,念のため,全プラグインを停止してみましたが,結果に違いはなく,末尾に_がつきました。
回答1件
あなたの回答
tips
プレビュー