У меня возникла проблема с WordPress 3.0
Я предваряю свои файлы изображений символом подчеркивания (_somefile.jpg), чтобы я мог помечать их для конкретных применений и изображений, которые не имеют подчеркивания.
Тем не менее, я только что обнаружил, что загрузчик мультимедиа в WP 3.0 удаляет эти символы подчеркивания из имени файла. Сначала я подумал, что это просто переименование названия WordPress для изображения, но я проверил его на FTP и фактически переименовал сам файл.
Есть ли параметр, который я могу переключить с помощью скрипта, чтобы отключить это редактирование имени файла?
Функция 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);
вот то же самое в однострочном (TESTED!):
add_filter('sanitize_file_name',create_function('$f,$fr','return preg_match("`^_`",$fr) ? "_".$f : $f;'),10,2);
я подтвердил, по крайней мере, что WordPress 3.5.1 лишает ведущие подчеркивания и что добавление этого фильтра сохранило основные подчеркивания.