我遇到了WordPress 3.0的问题
我使用下划线字符(_somefile.jpg)为我的图像文件添加前缀,以允许我标记它们以用于特定用途与没有下划线的图像。
但是,我刚刚发现WP 3.0中的媒体上传器从文件名中删除了这些下划线。起初我以为它只是重命名图像的wordpress标题,但我已经在FTP中验证了它,实际上它重命名了文件本身。
是否有设置我可以通过脚本切换来禁用此文件名编辑?
答案 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正在剥离前导下划线,并且添加此过滤器保留了前导下划线。