WordPress 3.0媒体上传器改变我的图像文件名

时间:2010-06-26 13:34:25

标签: php wordpress

我遇到了WordPress 3.0的问题

我使用下划线字符(_somefile.jpg)为我的图像文件添加前缀,以允许我标记它们以用于特定用途与没有下划线的图像。

但是,我刚刚发现WP 3.0中的媒体上传器从文件名中删除了这些下划线。起初我以为它只是重命名图像的wordpress标题,但我已经在FTP中验证了它,实际上它重命名了文件本身。

是否有设置我可以通过脚本切换来禁用此文件名编辑?

2 个答案:

答案 0 :(得分:1)

sanitize_file_name()中的功能wp-includes/formatting.php,第681行:

$filename = trim($filename, '.-_');

从功能文档:“从文件名的开头和结尾修剪句点,短划线和下划线。”

在此trim()名为sanitize_file_name后运行过滤器。此代码将解决您的问题(未经测试):

function preserve_leading_underscore( $filename, $filename_raw ) {
    if( "_" == substr($filename_raw, 0, 1) ) {
        $filename = "_" . $filename;
    }

    return $filename;
}
add_filter('sanitize_file_name', 'preserve_leading_underscore', 10, 2);

答案 1 :(得分:1)

这里的内容相同(TESTED!):

add_filter('sanitize_file_name',create_function('$f,$fr','return preg_match("`^_`",$fr) ? "_".$f : $f;'),10,2);

我至少证实,WordPress 3.5.1正在剥离前导下划线,并且添加此过滤器保留了前导下划线。