Bridge by Qode – Tuning #2 – Cambio font di default

Premessa: questo non è un post di affiliazione

Secondo post dedicato a Bridge, un template multipurpose tra i più venduti su Themeforest per vestire siti sviluppati su cms wordpress.

Ormai la curva di apprendimento per l’uso e il setup di questo template per me si è appiattita e sono nella piena fase di tuning. Non sono un dev, ma il bello di lavorare da anni su wordpress, javascript e php mi diverte al punto da smontare e rimontare quel che uso quasi ogni giorno.

Ebbene, da questo post inizio a raccontare cosa ho fatto per un progetto web B2B che ho sviluppato con Bridge.


Tuning #2: sostituzione del google font di base

Il codice sottostante – da aggiungere al functions.php del proprio tema attivo – serve per sostituire il font di default e aggiungere un ulteriore font tra quelli di Google che non sono disponibili tra quelli selezionabili.

Essendo il font set utilizzato quello fornito da Google, fare riferimento al sito fonts.google.com

Il codice disattiva il caricamento del tag link che carica il Raleway, il font prescelto dai dev del tema grafico.

Sostituire col nome del Google Font scelto per il vostro sito dove trovate nome_del_font all’interno del codice (in fondo).

/* no raleway */

if(!function_exists('qode_google_fonts_styles')) {
/**
* Function that includes google fonts defined anywhere in the theme
*/
function qode_google_fonts_styles() {
global $qode_options_proya, $qodeFramework, $qode_toolbar;

$font_weight_str = '100,200,300,400,500,600,700,800,900,300italic,400italic';
$default_font_string = 'Barlow:'.$font_weight_str;

$font_sipmle_field_array = array();
if(is_array($qodeFramework->qodeOptions->getOptionsByType('fontsimple')) && count($qodeFramework->qodeOptions->getOptionsByType('fontsimple'))){
$font_sipmle_field_array = $qodeFramework->qodeOptions->getOptionsByType('fontsimple');
}

$font_field_array = array();
if(is_array($qodeFramework->qodeOptions->getOptionsByType('font')) && count($qodeFramework->qodeOptions->getOptionsByType('font'))){
$font_field_array = $qodeFramework->qodeOptions->getOptionsByType('font');
}

$available_font_options = array_merge($font_sipmle_field_array, $font_field_array);

//define available font options array
$fonts_array = array();
foreach($available_font_options as $font_option) {
//is font set and not set to default and not empty?
if(isset($qode_options_proya[$font_option]) && $qode_options_proya[$font_option] !== '-1' && $qode_options_proya[$font_option] !== '' && !qode_is_native_font($qode_options_proya[$font_option])) {
$font_option_string = $qode_options_proya[$font_option].':'.$font_weight_str;
if(!in_array($font_option_string, $fonts_array)) {
$fonts_array[] = $font_option_string;
}

}
}

//add google fonts set in slider
$args = array( 'post_type' => 'slides', 'posts_per_page' => -1);
$loop = new WP_Query( $args );

//for each slide defined
while ( $loop->have_posts() ) : $loop->the_post();

//is font family for title option chosen?
if(get_post_meta(get_the_ID(), "qode_slide-title-font-family", true) != "") {
$slide_title_font_family = get_post_meta(get_the_ID(), "qode_slide-title-font-family", true);
$slide_title_font_string = $slide_title_font_family . ":".$font_weight_str;
if(!in_array($slide_title_font_string, $fonts_array) && !qode_is_native_font($slide_title_font_family)) {
//include that font
array_push($fonts_array, $slide_title_font_string);
}
}

//is font family defined for slide's text?
if(get_post_meta(get_the_ID(), "qode_slide-text-font-family", true) != "") {
$slide_text_font_family = get_post_meta(get_the_ID(), "qode_slide-text-font-family", true);
$slide_text_font_string = $slide_text_font_family . ":".$font_weight_str;
if(!in_array($slide_text_font_string, $fonts_array) && !qode_is_native_font($slide_text_font_family)) {
//include that font
array_push($fonts_array, $slide_text_font_string);
}
}

//is font family defined for slide's subtitle?
if(get_post_meta(get_the_ID(), "qode_slide-subtitle-font-family", true) != "") {
$slide_subtitle_font_family = get_post_meta(get_the_ID(), "qode_slide-subtitle-font-family", true);
$slide_subtitle_font_string = $slide_subtitle_font_family .":".$font_weight_str;
if(!in_array($slide_subtitle_font_string, $fonts_array) && !qode_is_native_font($slide_subtitle_font_family)) {
//include that font
array_push($fonts_array, $slide_subtitle_font_string);
}

}
endwhile;

wp_reset_postdata();

$fonts_array = array_diff($fonts_array, array("-1:".$font_weight_str));
$google_fonts_string = implode( '|', $fonts_array);

//is google font option checked anywhere in theme?
if(count($fonts_array) > 0) {
//include all checked fonts
//printf("<link href='//fonts.googleapis.com/css?family=".$default_font_string."|%s&subset=latin,latin-ext' rel='stylesheet' type='text/css'>\r\n", str_replace(' ', '+', $google_fonts_string));
printf("<link href='//fonts.googleapis.com/css?family=%s&subset=latin,latin-ext' rel='stylesheet' type='text/css'>\r\n", str_replace(' ', '+', $google_fonts_string));
} else {
//include default google font that theme is using
//printf("<link href='//fonts.googleapis.com/css?family=".$default_font_string."' rel='stylesheet' type='text/css'>\r\n");
}

if(isset($qode_toolbar)){
printf("<link href='//fonts.googleapis.com/css?family=nome_del_font:400,600' rel='stylesheet' type='text/css'>\r\n");
}
}

add_action('wp_enqueue_scripts', 'qode_google_fonts_styles');
}

Come risultato si potrà deselezionare il font di default per usare il google font che prima non era presente nella lista predefinita.