Se vi dovesse capitare di dover caricare dei fonts personalizzati in WordPress, da uploader creati da temi o plugins esterni, ma purtroppo vi ritroviaste con la scritta: “impossbile caricare questo tipo di file“, allora ecco la soluzione via PHP e senza isntallare alcun plugins.
Vi basta inserire questo codice nel vostro file functions.php
/**
* Fix per il check del file in WP
*/
function mm_fix_checker_wp_upload( $data, $file, $filename, $mimes, $real_mime ) {
if ( ! empty( $data['ext'] ) && ! empty( $data['type'] ) ) {
return $data;
}
// Prendo il tipo di file appena caricato
$wp_file_type = wp_check_filetype( $filename, $mimes );
// Controlla il tipo di file da abilitare
if ( 'woff' === $wp_file_type['ext'] ) {
$data['ext'] = 'woff';
$data['type'] = 'font/woff';
}
if ( 'woff2' === $wp_file_type['ext'] ) {
$data['ext'] = 'woff2';
$data['type'] = 'font/woff2';
}
if ( 'ttf' === $wp_file_type['ext'] ) {
$data['ext'] = 'ttf';
$data['type'] = 'font/ttf';
}
if ( 'otf' === $wp_file_type['ext'] ) {
$data['ext'] = 'otf';
$data['type'] = 'font/otf';
}
return $data;
}
add_filter( 'wp_check_filetype_and_ext', 'mm_fix_checker_wp_upload', 10, 5 );
/**
* Abilito il caricamento dei fonts
*/
function mm_abilita_fonts ( $mimes ) {
$mimes['woff'] = 'font/woff';
$mimes['woff2'] = 'font/woff2';
$mimes['ttf'] = 'font/ttf';
$mimes['otf'] = 'font/otf';
return $mimes;
}
add_filter( 'upload_mimes', 'mm_abilita_fonts' );
In questo modo potrete caricare via media upload, i vostri fonts, senza ricevere errori.
non è più comodo e veloce usare: define(‘ALLOW_UNFILTERED_UPLOADS’, true);
ho utilizzato questo per il mio blog sarao.it pensi che sia una cattiva pratica aprire a tutti i file?
Se lo fai ti bucano il sito. E’ una modalità che deve essere usata solo per test