Функция 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);