is_block_editor() ) || ( function_exists( 'is_gutenberg_page' ) && is_gutenberg_page() ) ) { global $virtue; $options_fonts = array( 'font_h1', 'font_h2', 'font_h3', 'font_h4', 'font_h5', 'font_p' ); $load_gfonts = array(); foreach ( $options_fonts as $options_key ) { if ( isset( $virtue[ $options_key ] ) && isset( $virtue[ $options_key ]['google'] ) && 'false' !== $virtue[ $options_key ]['google'] ) { // check if it's in the array. if ( isset( $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ] ) ) { if ( isset( $virtue[ $options_key ]['font-weight'] ) && ! empty( $virtue[ $options_key ]['font-weight'] ) ) { if ( isset( $virtue[ $options_key ]['font-style'] ) && ! empty( $virtue[ $options_key ]['font-style'] ) && ! is_numeric( $virtue[ $options_key ]['font-style'] ) && 'normal' !== $virtue[ $options_key ]['font-style'] ) { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style'][ $virtue[ $options_key ]['font-weight'] . $virtue[ $options_key ]['font-style'] ] = $virtue[ $options_key ]['font-weight'] . $virtue[ $options_key ]['font-style']; } else { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style'][ $virtue[ $options_key ]['font-weight'] ] = $virtue[ $options_key ]['font-weight']; } } if ( isset( $virtue[ $options_key ]['subsets'] ) && ! empty( $virtue[ $options_key ]['subsets'] ) ) { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['subsets'][ $virtue[ $options_key ]['subsets'] ] = $virtue[ $options_key ]['subsets']; } } else { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ] = array( 'font-family' => $virtue[ $options_key ]['font-family'], 'font-style' => array(), 'subsets' => array(), ); if ( isset( $virtue[ $options_key ]['font-weight'] ) && ! empty( $virtue[ $options_key ]['font-weight'] ) ) { if ( isset( $virtue[ $options_key ]['font-style'] ) && ! empty( $virtue[ $options_key ]['font-style'] ) && ! is_numeric( $virtue[ $options_key ]['font-style'] ) && 'normal' !== $virtue[ $options_key ]['font-style'] ) { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style'][ $virtue[ $options_key ]['font-weight'] . $virtue[ $options_key ]['font-style'] ] = $virtue[ $options_key ]['font-weight'] . $virtue[ $options_key ]['font-style']; } else { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style'][ $virtue[ $options_key ]['font-weight'] ] = $virtue[ $options_key ]['font-weight']; } } if ( isset( $virtue[ $options_key ]['subsets'] ) && ! empty( $virtue[ $options_key ]['subsets'] ) ) { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['subsets'][ $virtue[ $options_key ]['subsets'] ] = $virtue[ $options_key ]['subsets']; } } } if ( 'font_p' === $options_key ) { $path = trailingslashit( get_template_directory() ) . 'lib/gfont-json.php'; $all_fonts = include $path; if ( isset( $all_fonts[ $virtue[ $options_key ]['font-family'] ] ) ) { $p_font = $all_fonts[ $virtue[ $options_key ]['font-family'] ]; if ( isset( $p_font['variants']['italic']['400'] ) ) { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style']['400italic'] = '400italic'; } if ( isset( $p_font['variants']['italic']['700'] ) ) { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style']['700italic'] = '700italic'; } if ( isset( $p_font['variants']['normal']['400'] ) ) { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style']['400'] = '400'; } if ( isset( $p_font['variants']['normal']['700'] ) ) { $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style']['700'] = '700'; } } } } if ( ! empty( $load_gfonts ) ) { // Build the font family link. $link = ''; $subsets = array(); foreach ( $load_gfonts as $gfont_values ) { if ( ! empty( $link ) ) { $link .= '%7C'; // Append a new font to the string. } $link .= $gfont_values['font-family']; if ( ! empty( $gfont_values['font-style'] ) ) { $link .= ':'; $link .= implode( ',', $gfont_values['font-style'] ); } if ( ! empty( $gfont_values['subsets'] ) ) { foreach ( $gfont_values['subsets'] as $subset ) { if ( ! in_array( $subset, $subsets ) ) { array_push( $subsets, $subset ); } } } } if ( ! empty( $subsets ) ) { $link .= '&subset=' . implode( ',', $subsets ); } echo ''; } echo ''; } } add_action( 'admin_head-post.php', 'virtue_editor_dynamic_css' ); add_action( 'admin_head-post-new.php', 'virtue_editor_dynamic_css' );