array( '300','400','500','600','700','800' ), 'italic' => array( '400','700' ), ); if ( in_array( 'alternate', $modsfont ) ) { $fonts[ 'Comfortaa' ] = array( 'normal' => array( '400','700' ), ); } if ( in_array( 'display', $modsfont ) ) { $fonts[ 'Oswald' ] = array( 'normal' => array( '400' ), ); } if ( in_array( 'heading', $modsfont ) ) { $fonts[ 'Montserrat' ] = array( 'normal' => array( '400','700' ), 'italic' => array( '400','700' ), ); } if ( in_array( 'heading2', $modsfont ) ) { $fonts[ 'Lora' ] = array( 'normal' => array( '400','700' ), 'italic' => array( '400','700' ), ); } } $fonts = apply_filters( 'neux_google_fonts_array', $fonts ); // Cant use 'add_query_arg()' directly as new google font api url will have multiple key 'family' when adding multiple fonts // Hence use 'add_query_arg' on each argument separately and then combine them. foreach ( $fonts as $key => $value ) { if ( is_array( $value ) && ( !empty( $value['normal'] ) || !empty( $value['italic'] ) ) && ( is_array( $value['normal'] ) || is_array( $value['italic'] ) ) ) { $arg = array( 'family' => $key . ':ital,wght@' ); if ( !empty( $value['normal'] ) && is_array( $value['normal'] ) ) foreach ( $value['normal'] as $wght ) $arg['family'] .= "0,{$wght};"; if ( !empty( $value['italic'] ) && is_array( $value['italic'] ) ) foreach ( $value['italic'] as $wght ) $arg['family'] .= "1,{$wght};"; $arg['family'] = substr( $arg['family'], 0, -1 ); $args[] = substr( add_query_arg( $arg, '' ), 1 ); } } if ( !empty( $args ) ) { $fonts_url = '//fonts.googleapis.com/css2?' . implode( '&', $args ); $fonts_url .= ( apply_filters( 'neux_google_fonts_displayswap', false ) ) ? '&display=swap' : ''; } return $fonts_url; } /** * Modify the font (websafe) list * Font list should always have the form: * {css style} => {font name} * * Even though this list isn't currently used in customizer options (no typography options) * this is still needed so that sanitization functions recognize the font. * * @since 1.0 * @access public * @return array */ function neux_fonts_list( $fonts ) { $fonts['"Roboto", sans-serif'] = 'Roboto'; $fonts['"Comfortaa", sans-serif'] = 'Comfortaa'; $fonts['"Oswald", sans-serif'] = 'Oswald'; $fonts['"Montserrat", sans-serif']= 'Montserrat'; $fonts['"Lora", serif'] = 'Lora'; return $fonts; } add_filter( 'hoot_fonts_list', 'neux_fonts_list' );