# gutenify/1.0.4/inc/typography-helpers.php

Gutenify – Visual Site Builder Blocks &amp; Starter Templates, version 1.0.4. 322 lines.

- Page: https://pluginprobe.com/plugins/gutenify/1.0.4/code/inc/typography-helpers.php
- Raw: https://pluginprobe.com/plugins/gutenify/1.0.4/raw/inc/typography-helpers.php
- Modified: 2022-04-21T16:49:00+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/gutenify/1.0.4/code/inc/typography-helpers.php#L10-L20`.

```php
<?php
function gutenify_font_families() {
	$font_families = array(
		array(
			'fontFamily' => '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
			'name'       => 'System Font',
			'slug'       => 'system',
		),
		array(
			'fontFamily' => '"Allan", sans-serif',
			'name'       => 'Allan',
			'slug'       => 'allan',
		),
		array(
			'fontFamily' => '"Allerta", sans-serif',
			'name'       => 'Allerta',
			'slug'       => 'allerta',
		),
		array(
			'fontFamily' => '"Amaranth", sans-serif',
			'name'       => 'Amaranth',
			'slug'       => 'amaranth',
		),
		array(
			'fontFamily' => "'Amatic SC', cursive",
			'name'       => 'Amatic SC',
			'slug'       => 'amatic-sc',
		),
		array(
			'fontFamily' => '"Bitter", sans-serif',
			'name'       => 'Bitter',
			'slug'       => 'bitter',
		),
		array(
			'fontFamily' => '"Cabin", sans-serif',
			'name'       => 'Cabin',
			'slug'       => 'cabin',
		),
		array(
			'fontFamily' => '"Cantarell", sans-serif',
			'name'       => 'Cantarell',
			'slug'       => 'cantarell',
		),
		array(
			'fontFamily' => '"Cuprum", sans-serif',
			'name'       => 'Cuprum',
			'slug'       => 'cuprum',
		),
		array(
			'fontFamily' => "'Dancing Script', cursive",
			'name'       => 'Dancing Script',
			'slug'       => 'dancing-script',
		),
		array(
			'fontFamily' => '"Exo", sans-serif',
			'name'       => 'Exo',
			'slug'       => 'exo',
		),
		array(
			'fontFamily' => '"Exo 2", sans-serif',
			'name'       => 'Exo 2',
			'slug'       => 'exo-2',
		),
		array(
			'fontFamily' => '"Heebo", sans-serif',
			'name'       => 'Heebo',
			'slug'       => 'heebo',
		),
		array(
			'fontFamily' => '"Istok Web", sans-serif',
			'name'       => 'Istok Web',
			'slug'       => 'istok-web',
		),
		array(
			'fontFamily' => '"Josefin Sans", sans-serif',
			'name'       => 'Josefin Sans',
			'slug'       => 'josefin-sans',
		),
		array(
			'fontFamily' => '"Lobster", sans-serif',
			'name'       => 'Lobster',
			'slug'       => 'lobster',
		),
		array(
			'fontFamily' => '"Lora", serif',
			'name'       => 'Lora',
			'slug'       => 'lora',
		),
		array(
			'fontFamily' => '"Mrs Saint Delafield", cursive',
			'name'       => 'Mrs Saint Delafield',
			'slug'       => 'mrs-saint-delafield',
		),
		array(
			'fontFamily' => '"Merriweather", serif',
			'name'       => 'Merriweather',
			'slug'       => 'merriweather',
		),
		array(
			'fontFamily' => '"Montserrat", sans-serif',
			'name'       => 'Montserrat',
			'slug'       => 'montserrat',
		),
		array(
			'fontFamily' => '"Nobile", sans-serif',
			'name'       => 'Nobile',
			'slug'       => 'mobile',
		),
		array(
			'fontFamily' => '"Noto Sans", sans-serif',
			'name'       => 'Noto Sans',
			'slug'       => 'noto-sans',
		),
		array(
			'fontFamily' => '"Noto Serif", serif',
			'name'       => 'Noto Serif',
			'slug'       => 'noto-serif',
		),
		array(
			'fontFamily' => '"Neuton", serif',
			'name'       => 'Neuton',
			'slug'       => 'neuton',
		),
		array(
			'fontFamily' => '"Open Sans", sans-serif',
			'name'       => 'Open Sans',
			'slug'       => 'open-sans',
		),
		array(
			'fontFamily' => '"Oswald", sans-serif',
			'name'       => 'Oswald',
			'slug'       => 'oswald',
		),
		array(
			'fontFamily' => '"Patua One", sans-serif',
			'name'       => 'Patua One',
			'slug'       => 'patua-one',
		),
		array(
			'fontFamily' => '"Playfair Display", sans-serif',
			'name'       => 'Playfair Display',
			'slug'       => 'playfair-display',
		),
		array(
			'fontFamily' => '"PT Sans", sans-serif',
			'name'       => 'PT Sans',
			'slug'       => 'pt-sans',
		),
		array(
			'fontFamily' => '"PT Serif", serif',
			'name'       => 'PT Serif',
			'slug'       => 'pt-serif',
		),
		array(
			'fontFamily' => '"Quattrocento Sans", sans-serif',
			'name'       => 'Quattrocento Sans',
			'slug'       => 'quattrocento-sans',
		),
		array(
			'fontFamily' => '"Barlow", sans-serif',
			'name'       => 'Barlow',
			'slug'       => 'barlow',
		),
		array(
			'fontFamily' => '"Rubik", sans-serif',
			'name'       => 'Rubik',
			'slug'       => 'rubik',
		),
		array(
			'fontFamily' => '"Ubuntu", sans-serif',
			'name'       => 'Ubuntu',
			'slug'       => 'ubuntu',
		),
		array(
			'fontFamily' => '"Varela", sans-serif',
			'name'       => 'Varela',
			'slug'       => 'varela',
		),
		array(
			'fontFamily' => '"Varela Round", sans-serif',
			'name'       => 'Varela Round',
			'slug'       => 'varela-round',
		),
		array(
			'fontFamily' => '"Yanone Kaffeesatz", sans-serif',
			'name'       => 'Yanone Kaffeesatz',
			'slug'       => 'yanone-kaffeesatz',
		),
		array(
			'fontFamily' => '"Khula", sans-serif',
			'name'       => 'Khula',
			'slug'       => 'khula',
		),
		array(
			'fontFamily' => '"Source Serif Pro", serif',
			'name'       => 'Source Serif Pro',
			'slug'       => 'source-serif-pro',
		),
		array(
			'fontFamily' => '"Gilda Display", serif',
			'name'       => 'Gilda Display',
			'slug'       => 'gilda-display',
		),
		array(
			'fontFamily' => '"Nunito Sans", sans-serif',
			'name'       => 'Nunito Sans',
			'slug'       => 'nunito-sans',
		),
		array(
			'fontFamily' => '\'Lato\', sans-serif',
			'name'       => 'Lato Sans Serif',
			'slug'       => 'lato-sans-serif',
		),
		array(
			'fontFamily' => '\'Roboto\', sans-serif',
			'name'       => 'Roboto',
			'slug'       => 'roboto-sans-serif',
		),
		array(
			'fontFamily' => '\'Roboto Condensed\', sans-serif',
			'name'       => 'Roboto Condensed Sans Serif',
			'slug'       => 'roboto-condensed-sans-serif',
		),
		array(
			'fontFamily' => '\'Roboto Slab\', sans-serif',
			'name'       => 'Roboto Slab Sans Serif',
			'slug'       => 'roboto-slab-sans-serif',
		),
		array(
			'fontFamily' => '\'Poppins\', sans-serif',
			'name'       => 'Poppins',
			'slug'       => 'poppins-sans-serif',
		),
		array(
			'fontFamily' => '\'Inter\', sans-serif',
			'name'       => 'Inter Sans Serif',
			'slug'       => 'inter-sans-serif',
		),
		array(
			'fontFamily' => "'Hurricane', cursive",
			'name'       => 'Hurricane',
			'slug'       => 'hurricane-cursive',
		),
		array(
			'fontFamily' => "'Palette Mosaic', cursive",
			'name'       => 'Palette Mosaic',
			'slug'       => 'palette-mosaic-cursive',
		),
		array(
			'fontFamily' => "'Jost', sans-serif",
			'name'       => 'Jost',
			'slug'       => 'jost',
		),
		array(
			'fontFamily' => "'Manrope', sans-serif",
			'name'       => 'Manrope',
			'slug'       => 'manrope',
		),
	);
	return $font_families;
}

function gutenify_get_global_style_fonts( array $arr ) {
	$result = array();
	if ( ! empty( $arr ) ) {
		foreach ( $arr as $key => $style ) {
			if ( 'fontFamily' === $key ) {
				$result[] = $style;
			}
			if ( is_array( $style ) ) {
				$result = array_merge( $result, gutenify_get_global_style_fonts( $style ) );
			}
		}
	}
	return $result;
}

/**
 * Add Google webfonts
 *
 * @return $fonts_url
 */
function gutenify_fonts_url() {
	$global_styles          = wp_get_global_styles();
	$font_families          = gutenify_font_families();
	$selected_font_families = array();

	$global_style_fonts = gutenify_get_global_style_fonts( $global_styles );
	$global_fonts       = array();
	if ( ! empty( $global_style_fonts ) ) {
		foreach ( $global_style_fonts as $font ) {
			$font           = str_replace( ')', '', $font );
			$global_fonts[] = str_replace( 'var(--wp--preset--font-family--', '', $font );
		}
	}

	$gutenify_site_options = get_option( 'gutenify_site_options' );
	if ( ! empty( $font_families ) ) {
		foreach ( $font_families as $family ) {
			if ( $gutenify_site_options['styles']['typography']['fontFamilySlug'] === $family['slug'] ) {
				$selected_font_families[] = 'family=' . $family['name'];
			}
			if ( $gutenify_site_options['styles']['elements']['headings']['typography']['fontFamilySlug'] === $family['slug'] ) {
				$selected_font_families[] = 'family=' . $family['name'];
			}
			if ( in_array( $family['slug'], $global_fonts ) ) {
				$selected_font_families[] = 'family=' . $family['name'];
			}
		}
	}
	// echo '<pre>';
	// print_r( $selected_font_families );
	// echo '</pre>';

	if ( empty( $selected_font_families ) ) {
		return '';
	}

	// Make a single request for the theme or user fonts.
	return esc_url_raw( 'https://fonts.googleapis.com/css2?' . implode( '&', array_unique( $selected_font_families ) ) . '&display=swap' );
}

```
