Загрузка ttf файлов в WordPress
Версия wordpress 5.6.2, при попытки расширить арсенал загружаемых форматов wp ругается что файл запрещен.
Хотя при проверке массива разрешенных форматов запись есть.
Что изменилось и почему не получается загрузить подскажите?
[ttf] => application/octet-stream
add_filter('upload_mimes', 'add_ttf_type');
function add_ttf_type($mime_types){
$mime_types['ttf'] = 'application/octet-stream';
return $mime_types;
}
Но файл .ttf загрузить не дает.
Мое решение
И через пару часов я добавляю ответ.
$mime_types['ttf'] = 'application/octet-stream';
меняем на
$mime_types['ttf'] = 'application/x-font-ttf';
В ранних версиях в место application/x-font-ttf я писал TryeTypeFont и все работало.
В PHP при проверке МИМЕ тип файла
.ttfполучаетсяfont/sfnt. Поэтому тебе нужно указать именно его:add_filter( 'upload_mimes', 'upload_allow_types' ); function upload_allow_types( $mimes ) { $mimes['ttf'] = 'font/sfnt'; return $mimes; }Однако не уверен что такой тип будет подходить для всех
.ttfфайлов (к файлу который я загружал подошел). Поэтому чтобы обрабатывались все виды.ttfфайлов нужен будет еще один дополнительный.# Исправление MIME типа add_filter( 'wp_check_filetype_and_ext', 'check_filetype_fix_mime_type', 10, 5 ); function check_filetype_fix_mime_type( $data, $file, $filename, $mimes, $real_mime = '' ){ // поправим mime тип ttf файлов if( '.ttf' === strtolower( substr($filename, -4) ) ){ $data['ext'] = 'ttf'; $data['type'] = 'font/sfnt'; } return $data; }Я не знал как ответить самому себе, поэтому дополнил вопрос в конце ответом)
Спасибо за помощь)
Твой вариант подойдет не для всех ttf файлов... Я об этом написал уже.
Да я понял, просто на данный момент мне этого за глаза)