正在上传图片:‘ø’被替换为‘o.’

时间:2015-01-09 作者:ptf

所以,我有两个网站。一个在生产,另一个在开发。它们具有相同的内容和上载。

在生产中,名称包含æ, ø, 或å 获取替换为其他字符的字符,例如ø 替换为ø, 然后保存在上载文件夹中。而且很有效!Wordpress在我请求时以某种方式获得了正确的图像。

E、 g: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 将这与生产中的行为相反。

有人知道这件事吗?

编辑:我可能只是一些重命名工具。但是,如果有人有任何见解,请分享。

1 个回复
SO网友:Mamaduka

可湿性粉剂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.

结束

相关推荐

定义`GET_POST_QUALUALY_Images`的大小,它们似乎已调整为150x150

我正在使用get_post_gallery_images 它可以输出150x150的图像。它看起来不需要大小参数,所以我假设它只会显示最大的图像,或者最好是我定义的一个大小。150x150太小了,有没有地方可以声明我想要多大尺寸的画廊图片?例如,我正在做:<?php $gallery = get_post_gallery_images( $post ); foreach ($gallery as $img) { ?> <li><img src