だから、私は2つのサイトがあります。 1つは生産中、もう1つは開発中です。彼らは同じコンテンツを持ち、アップロードします。
本番環境では、æ
、ø
、またはå
を含む名前を持つ画像は、文字を別のものに置き換えます(たとえば、ø
をø
に置き換えてからアップロードフォルダーに保存します)。そしてそれはうまくいきます!私がそれを要求するとき、Wordpressはどういうわけか正しいイメージを得ます。
例:wp-content/upload/2015/01/interiørtips.jpg
はイメージinteriørtips.jpg
を表示します。
データベースには、特殊文字を含めて、画像への参照は通常通り保存されます。名前にæøå
が使用されていますが、他のあいまいな文字の組み合わせではありません。これはデータベースが正常であることを意味します。
開発中にプロダクションからすべてのコンテンツを新しいデータベースにエクスポートしましたが、æ
、ø
、またはå
を含むすべてのイメージは、プロダクションと同じ方法でロードされません。リクエストwp-content/upload/2015/01/interiørtips.jpg
は何もロードしませんが、wp-content/upload/2015/01/interiørtips.jpg
はロードします。これは実稼働時の動作とは反対です。
誰もがこれについて何か知っていますか?
編集:私はおそらくいくつかの名前変更ツールになります。しかし、誰かが何か洞察をお持ちの場合は、共有してください。
WPのsanitize_file_name()
関数はデフォルトでそれらの文字を処理しません。
エンコーディングの問題を回避するために、フィルタを追加してサニタイズすることができます。
function mamaduka_sanitize_file_name( $filename ) {
$filename = strtr($filename, 'ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïñòóôõöøùúûüýÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƒƠơƯưǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǺǻǼǽǾǿ', 'SZszYAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyyAAAAAAAECEEEEIIIIDNOOOOOOUUUUYsaaaaaaaeceeeeiiiinoooooouuuuyyAaAaAaCcCcCcCcDdDdEeEeEeEeEeGgGgGgGgHhHhIiIiIiIiIiIJijJjKkLlLlLlLlllNnNnNnnOoOoOoOEoeRrRrRrSsSsSsSsTtTtTtUuUuUuUuUuUuWwYyYZzZzZzsfOoUuAaIiOoUuUuUuUuUuAaAEaeOo');
return $filename;
}
add_filter( 'sanitize_file_name', 'mamaduka_sanitize_file_name' );
このTracコメントのコード例 - https://core.trac.wordpress.org/ticket/16330#comment:22 。