Abilitare il caricamento di fonts in WordPress

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.

2 commenti su Abilitare il caricamento di fonts in WordPress

  1. 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?

    1. Se lo fai ti bucano il sito. E’ una modalità che deve essere usata solo per test

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *