????JFIF??x?x????'
Server IP : 104.21.16.1 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/tempvsty/peekmysite.com/wp-content/themes/CherryFramework/admin/ |
Upload File : |
<?php $font_array = array(); $char_array = array(); /* Text */ add_filter( 'of_sanitize_text', 'sanitize_text_field' ); /* Textarea */ function of_sanitize_textarea($input) { global $allowedposttags; $output = wp_kses( $input, $allowedposttags); return $output; } add_filter( 'of_sanitize_textarea', 'of_sanitize_textarea' ); /* Select */ add_filter( 'of_sanitize_select', 'of_sanitize_enum', 10, 2); /* Radio */ add_filter( 'of_sanitize_radio', 'of_sanitize_enum', 10, 2); /* Images */ add_filter( 'of_sanitize_images', 'of_sanitize_enum', 10, 2); /* Checkbox */ function of_sanitize_checkbox( $input ) { if ( $input ) { $output = '1'; } else { $output = false; } return $output; } add_filter( 'of_sanitize_checkbox', 'of_sanitize_checkbox' ); /* Multicheck */ function of_sanitize_multicheck( $input, $option ) { $output = ''; if ( is_array( $input ) ) { foreach( $option['options'] as $key => $value ) { $output[$key] = "0"; } foreach( $input as $key => $value ) { if ( array_key_exists( $key, $option['options'] ) && $value ) { $output[$key] = "1"; } } } return $output; } add_filter( 'of_sanitize_multicheck', 'of_sanitize_multicheck', 10, 2 ); /* Color Picker */ add_filter( 'of_sanitize_color', 'of_sanitize_hex' ); /* Uploader */ function of_sanitize_upload( $input ) { $output = ''; $filetype = wp_check_filetype($input); if ( $filetype["ext"] ) { $output = $input; } return $output; } add_filter( 'of_sanitize_upload', 'of_sanitize_upload' ); /* Editor */ function of_sanitize_editor($input) { if ( current_user_can( 'unfiltered_html' ) ) { $output = $input; } else { global $allowedtags; $output = wpautop(wp_kses( $input, $allowedtags)); } return $output; } add_filter( 'of_sanitize_editor', 'of_sanitize_editor' ); /* Allowed Tags */ function of_sanitize_allowedtags($input) { global $allowedtags; $output = wpautop(wp_kses( $input, $allowedtags)); return $output; } /* Allowed Post Tags */ function of_sanitize_allowedposttags($input) { global $allowedposttags; $output = wpautop(wp_kses( $input, $allowedposttags)); return $output; } add_filter( 'of_sanitize_info', 'of_sanitize_allowedposttags' ); /* Check that the key value sent is valid */ function of_sanitize_enum( $input, $option ) { $output = ''; if ( array_key_exists( $input, $option['options'] ) ) { $output = $input; } return $output; } /* Background */ function of_sanitize_background( $input ) { $output = wp_parse_args( $input, array( 'color' => '', 'image' => '', 'repeat' => 'repeat', 'position' => 'top center', 'attachment' => 'scroll' ) ); $output['color'] = apply_filters( 'of_sanitize_hex', $input['color'] ); $output['image'] = apply_filters( 'of_sanitize_upload', $input['image'] ); $output['repeat'] = apply_filters( 'of_background_repeat', $input['repeat'] ); $output['position'] = apply_filters( 'of_background_position', $input['position'] ); $output['attachment'] = apply_filters( 'of_background_attachment', $input['attachment'] ); return $output; } add_filter( 'of_sanitize_background', 'of_sanitize_background' ); function of_sanitize_background_repeat( $value ) { $recognized = of_recognized_background_repeat(); if ( array_key_exists( $value, $recognized ) ) { return $value; } return apply_filters( 'of_default_background_repeat', current( $recognized ) ); } add_filter( 'of_background_repeat', 'of_sanitize_background_repeat' ); function of_sanitize_background_position( $value ) { $recognized = of_recognized_background_position(); if ( array_key_exists( $value, $recognized ) ) { return $value; } return apply_filters( 'of_default_background_position', current( $recognized ) ); } add_filter( 'of_background_position', 'of_sanitize_background_position' ); function of_sanitize_background_attachment( $value ) { $recognized = of_recognized_background_attachment(); if ( array_key_exists( $value, $recognized ) ) { return $value; } return apply_filters( 'of_default_background_attachment', current( $recognized ) ); } add_filter( 'of_background_attachment', 'of_sanitize_background_attachment' ); /* Typography */ function of_sanitize_typography( $input, $option ) { $output = wp_parse_args( $input, array( 'size' => '', 'face' => '', 'character' => '', 'style' => '', 'lineheight' => '', 'color' => '' ) ); if ( isset( $option['options']['faces'] ) && isset( $input['face'] ) ) { if ( !( array_key_exists( $input['face'], $option['options']['faces'] ) ) ) { $output['face'] = ''; } } else { $output['face'] = apply_filters( 'of_font_face', $output['face'] ); } $output['size'] = apply_filters( 'of_font_size', $output['size'] ); $output['style'] = apply_filters( 'of_font_style', $output['style'] ); $output['character'] = apply_filters( 'of_font_character', $output['character'] ); $output['color'] = apply_filters( 'of_sanitize_color', $output['color'] ); $output['lineheight'] = apply_filters( 'of_sanitize_lineheight', $output['lineheight'] ); return $output; } add_filter( 'of_sanitize_typography', 'of_sanitize_typography', 10, 2 ); function of_sanitize_font_size( $value ) { $recognized = of_recognized_font_sizes(); $value_check = preg_replace('/px/','', $value); if ( in_array( (int) $value_check, $recognized ) ) { return $value; } return apply_filters( 'of_default_font_size', $recognized ); } add_filter( 'of_font_size', 'of_sanitize_font_size' ); function of_sanitize_font_style( $value ) { $recognized = of_recognized_font_styles(); if ( array_key_exists( $value, $recognized ) ) { return $value; } return apply_filters( 'of_default_font_style', current( $recognized ) ); } add_filter( 'of_font_style', 'of_sanitize_font_style' ); function of_sanitize_font_lineheight( $value ) { $recognized = of_recognized_font_lineheight(); if ( array_key_exists( $value, $recognized ) ) { return $value; } return apply_filters( 'of_default_font_lineheight', current( $recognized ) ); } add_filter( 'of_font_lineheight', 'of_sanitize_font_lineheight' ); function of_sanitize_font_face( $value ) { $recognized = of_recognized_font_faces(); if ( array_key_exists( $value, $recognized ) ) { return $value; } return apply_filters( 'of_default_font_face', current( $recognized ) ); } add_filter( 'of_font_face', 'of_sanitize_font_face' ); function of_sanitize_font_character( $value ) { $recognized = of_recognized_font_characters(); if ( array_key_exists( $value, $recognized ) ) { return $value; } return apply_filters( 'of_default_font_character', current( $recognized ) ); } add_filter( 'of_font_character', 'of_sanitize_font_character' ); /** * Get recognized background repeat settings * * @return array * */ function of_recognized_background_repeat() { $default = array( 'no-repeat' => __('No Repeat', 'options_framework_theme'), 'repeat-x' => __('Repeat Horizontally', 'options_framework_theme'), 'repeat-y' => __('Repeat Vertically', 'options_framework_theme'), 'repeat' => __('Repeat All', 'options_framework_theme'), ); return apply_filters( 'of_recognized_background_repeat', $default ); } /** * Get recognized background positions * * @return array * */ function of_recognized_background_position() { $default = array( 'top left' => __('Top Left', 'options_framework_theme'), 'top center' => __('Top Center', 'options_framework_theme'), 'top right' => __('Top Right', 'options_framework_theme'), 'center left' => __('Middle Left', 'options_framework_theme'), 'center center' => __('Middle Center', 'options_framework_theme'), 'center right' => __('Middle Right', 'options_framework_theme'), 'bottom left' => __('Bottom Left', 'options_framework_theme'), 'bottom center' => __('Bottom Center', 'options_framework_theme'), 'bottom right' => __('Bottom Right', 'options_framework_theme') ); return apply_filters( 'of_recognized_background_position', $default ); } /** * Get recognized background attachment * * @return array * */ function of_recognized_background_attachment() { $default = array( 'scroll' => __('Scroll Normally', 'options_framework_theme'), 'fixed' => __('Fixed in Place', 'options_framework_theme') ); return apply_filters( 'of_recognized_background_attachment', $default ); } /** * Sanitize a color represented in hexidecimal notation. * * @param string Color in hexidecimal notation. "#" may or may not be prepended to the string. * @param string The value that this function should return if it cannot be recognized as a color. * @return string * */ function of_sanitize_hex( $hex, $default = '' ) { if ( of_validate_hex( $hex ) ) { return $hex; } return $default; } /** * Get recognized font sizes. * * Returns an indexed array of all recognized font sizes. * Values are integers and represent a range of sizes from * smallest to largest. * * @return array */ function of_recognized_font_sizes() { $sizes = range( 9, 100 ); $sizes = apply_filters( 'of_recognized_font_sizes', $sizes ); $sizes = array_map( 'absint', $sizes ); return $sizes; } /** * Get lineheights. * * Returns an array of all recognized font styles. * Keys are intended to be stored in the database * while values are ready for display in in html. * * @return array * */ function of_recognized_font_lineheight() { $default = array( '1' => __('1', 'options_framework_theme'), '1.2' => __('1.2', 'options_framework_theme'), '1.5' => __('1.5', 'options_framework_theme'), '2' => __('2', 'options_framework_theme') ); return apply_filters( 'of_recognized_font_lineheight', $default ); } /** * Get recognized font faces. * * Returns an array of all recognized font faces. * Keys are intended to be stored in the database * while values are ready for display in in html. * * @return array * */ function of_recognized_font_faces() { $default = array( 'arial' => 'Arial', 'verdana' => 'Verdana, Geneva', 'trebuchet' => 'Trebuchet', 'georgia' => 'Georgia', 'times' => 'Times New Roman', 'tahoma' => 'Tahoma, Geneva', 'palatino' => 'Palatino', 'helvetica' => 'Helvetica' ); return apply_filters( 'of_recognized_font_faces', $default ); } /** * Get recognized font character sets. * * Returns an array of all recognized font character sets. * Keys are intended to be stored in the database * while values are ready for display in in html. * * @return array * */ function of_recognized_font_characters() { $default = array( 'latin' => __('Latin', 'options_framework_theme'), 'latin-ext' => __('Latin Extended', 'options_framework_theme'), 'greek' => __('Greek', 'options_framework_theme'), 'greek-ext' => __('Greek Extended', 'options_framework_theme'), 'cyrillic' => __('Cyrillic', 'options_framework_theme'), 'cyrillic-ext' => __('Cyrillic Extended', 'options_framework_theme'), 'vietnamese' => __('Vietnamese', 'options_framework_theme') ); return apply_filters( 'of_recognized_font_characters', $default ); } /** * Get recognized font styles. * * Returns an array of all recognized font styles. * Keys are intended to be stored in the database * while values are ready for display in in html. * * @return array * */ function of_recognized_font_styles() { $default = array( 'normal' => __('Normal', 'options_framework_theme'), 'italic' => __('Italic', 'options_framework_theme'), 'bold' => __('Bold', 'options_framework_theme'), 'bold italic' => __('Bold Italic', 'options_framework_theme') ); return apply_filters( 'of_recognized_font_styles', $default ); } /** * Returns an array of system fonts * Feel free to edit this, update the font fallbacks, etc. */ function options_typography_get_os_fonts() { // OS Font Defaults $os_faces = array( 'Arial, Helvetica, sans-serif' => 'Arial', 'Verdana, Geneva, sans-serif' => 'Verdana', '"Trebuchet MS", Arial, Helvetica, sans-serif' => 'Trebuchet MS', 'Georgia, "Times New Roman", Times, serif' => 'Georgia', '"Times New Roman", Times, serif' => 'Times New Roman', 'Tahoma, Geneva, sans-serif' => 'Tahoma', '"Palatino Linotype", "Book Antiqua", Palatino, serif' => 'Palatino', 'Helvetica' => 'Helvetica' ); return $os_faces; } /** * Returns a select list of Google fonts * Feel free to edit this, update the fallbacks, etc. */ function options_typography_get_google_fonts() { // Google Font Defaults $google_faces = array( "Abel, sans-serif" => "Abel *", "Abril Fatface" => "Abril Fatface *", "Aclonica" => "Aclonica *", "Acme" => "Acme *", "Actor" => "Actor *", "Adamina" => "Adamina *", "Advent Pro" => "Advent Pro *", "Aguafina Script" => "Aguafina Script *", "Aladin" => "Aladin *", "Aldrich" => "Aldrich *", "Alegreya" => "Alegreya *", "Alegreya SC" => "Alegreya SC *", "Alex Brush" => "Alex Brush *", "Alfa Slab One" => "Alfa Slab One *", "Alice" => "Alice *", "Alike" => "Alike *", "Alike Angular" => "Alike Angular *", "Allan" => "Allan *", "Allerta" => "Allerta *", "Allerta Stencil" => "Allerta Stencil *", "Allura" => "Allura *", "Almendra" => "Almendra *", "Almendra SC" => "Almendra SC *", "Amaranth" => "Amaranth *", "Amatic SC" => "Amatic SC *", "Amethysta" => "Amethysta *", "Andada" => "Andada *", "Andika" => "Andika *", "Angkor" => "Angkor *", "Annie Use Your Telescope" => "Annie Use Your Telescope *", "Anonymous Pro" => "Anonymous Pro *", "Antic" => "Antic *", "Antic Didone" => "Antic Didone *", "Antic Slab" => "Antic Slab *", "Anton" => "Anton *", "Arapey" => "Arapey *", "Arbutus" => "Arbutus *", "Architects Daughter" => "Architects Daughter *", "Archivo Narrow" => "Archivo Narrow *", "Arimo" => "Arimo *", "Arizonia" => "Arizonia *", "Armata" => "Armata *", "Artifika" => "Artifika *", "Arvo" => "Arvo *", "Asap" => "Asap *", "Asset" => "Asset *", "Astloch" => "Astloch *", "Asul" => "Asul *", "Atomic Age" => "Atomic Age *", "Aubrey" => "Aubrey *", "Audiowide" => "Audiowide *", "Average" => "Average *", "Averia Gruesa Libre" => "Averia Gruesa Libre *", "Averia Libre" => "Averia Libre *", "Averia Sans Libre" => "Averia Sans Libre *", "Averia Serif Libre" => "Averia Serif Libre *", "Bad Script" => "Bad Script *", "Balthazar" => "Balthazar *", "Bangers" => "Bangers *", "Basic" => "Basic *", "Battambang" => "Battambang *", "Baumans" => "Baumans *", "Bayon" => "Bayon *", "Belgrano" => "Belgrano *", "Belleza" => "Belleza *", "BenchNine" => "BenchNine *", "Bentham" => "Bentham *", "Berkshire Swash" => "Berkshire Swash *", "Bevan" => "Bevan *", "Bigshot One" => "Bigshot One *", "Bilbo" => "Bilbo *", "Bilbo Swash Caps" => "Bilbo Swash Caps *", "Bitter" => "Bitter *", "Black Ops One" => "Black Ops One *", "Bokor" => "Bokor *", "Bonbon" => "Bonbon *", "Boogaloo" => "Boogaloo *", "Bowlby One" => "Bowlby One *", "Bowlby One SC" => "Bowlby One SC *", "Brawler" => "Brawler *", "Bree Serif" => "Bree Serif *", "Bubblegum Sans" => "Bubblegum Sans *", "Buda" => "Buda *", "Buenard" => "Buenard *", "Butcherman" => "Butcherman *", "Butterfly Kids" => "Butterfly Kids *", "Cabin" => "Cabin *", "Cabin Condensed" => "Cabin Condensed *", "Cabin Sketch" => "Cabin Sketch *", "Caesar Dressing" => "Caesar Dressing *", "Cagliostro" => "Cagliostro *", "Calligraffitti" => "Calligraffitti *", "Cambo" => "Cambo *", "Candal" => "Candal *", "Cantarell" => "Cantarell *", "Cantata One" => "Cantata One *", "Cardo" => "Cardo *", "Carme" => "Carme *", "Carter One" => "Carter One *", "Caudex" => "Caudex *", "Cedarville Cursive" => "Cedarville Cursive *", "Ceviche One" => "Ceviche One *", "Changa One" => "Changa One *", "Chango" => "Chango *", "Chau Philomene One" => "Chau Philomene One *", "Chelsea Market" => "Chelsea Market *", "Chenla" => "Chenla *", "Cherry Cream Soda" => "Cherry Cream Soda *", "Chewy" => "Chewy *", "Chicle" => "Chicle *", "Chivo" => "Chivo *", "Cinzel" => "Cinzel *", "Coda" => "Coda *", "Coda Caption" => "Coda Caption *", "Codystar" => "Codystar *", "Comfortaa" => "Comfortaa *", "Coming Soon" => "Coming Soon *", "Concert One" => "Concert One *", "Condiment" => "Condiment *", "Content" => "Content *", "Contrail One" => "Contrail One *", "Convergence" => "Convergence *", "Cookie" => "Cookie *", "Copse" => "Copse *", "Corben" => "Corben *", "Cousine" => "Cousine *", "Coustard" => "Coustard *", "Courgette" => "Courgette *", "Covered By Your Grace" => "Covered By Your Grace *", "Crafty Girls" => "Crafty Girls *", "Creepster" => "Creepster *", "Crete Round" => "Crete Round *", "Crimson Text" => "Crimson Text *", "Crushed" => "Crushed *", "Cuprum" => "Cuprum *", "Cutive" => "Cutive *", "Damion" => "Damion *", "Dancing Script" => "Dancing Script *", "Dangrek" => "Dangrek *", "Dawning of a New Day" => "Dawning of a New Day *", "Days One" => "Days One *", "Delius" => "Delius *", "Delius Swash Caps" => "Delius Swash Caps *", "Delius Unicase" => "Delius Unicase *", "Della Respira" => "Della Respira *", "Devonshire" => "Devonshire *", "Didact Gothic" => "Didact Gothic *", "Diplomata" => "Diplomata *", "Diplomata SC" => "Diplomata SC *", "Doppio One" => "Doppio One *", "Dorsa" => "Dorsa *", "Dosis" => "Dosis *", "Dr Sugiyama" => "Dr Sugiyama *", "Droid Sans" => "Droid Sans *", "Droid Sans Mono" => "Droid Sans Mono *", "Droid Serif" => "Droid Serif *", "Duru Sans" => "Duru Sans *", "Dynalight" => "Dynalight *", "EB Garamond" => "EB Garamond *", "Eater" => "Eater *", "Economica" => "Economica *", "Electrolize" => "Electrolize *", "Emblema One" => "Emblema One *", "Emilys Candy" => "Emilys Candy *", "Engagement" => "Engagement *", "Enriqueta" => "Enriqueta *", "Erica One" => "Erica One *", "Esteban" => "Esteban *", "Euphoria Script" => "Euphoria Script *", "Ewert" => "Ewert *", "Exo, sans-serif" => "Exo *", "Expletus Sans" => "Expletus Sans *", "Fanwood Text" => "Fanwood Text *", "Fascinate" => "Fascinate *", "Fascinate Inline" => "Fascinate Inline *", "Federant" => "Federant *", "Federo" => "Federo *", "Felipa" => "Felipa *", "Fjord One" => "Fjord One *", "Fjalla One" => "Fjalla One *", "Flamenco" => "Flamenco *", "Flavors" => "Flavors *", "Fondamento" => "Fondamento *", "Fontdiner Swanky" => "Fontdiner Swanky *", "Forum" => "Forum *", "Francois One" => "Francois One *", "Fredericka the Great" => "Fredericka the Great *", "Fredoka One" => "Fredoka One *", "Freehand" => "Freehand *", "Fresca" => "Fresca *", "Frijole" => "Frijole *", "Fugaz One" => "Fugaz One *", "GFS Didot" => "GFS Didot *", "GFS Neohellenic" => "GFS Neohellenic *", "Galdeano" => "Galdeano *", "Gentium Basic" => "Gentium Basic *", "Gentium Book Basic" => "Gentium Book Basic *", "Geo" => "Geo *", "Geostar" => "Geostar *", "Geostar Fill" => "Geostar Fill *", "Germania One" => "Germania One *", "Give You Glory" => "Give You Glory *", "Glass Antiqua" => "Glass Antiqua *", "Glegoo" => "Glegoo *", "Gloria Hallelujah" => "Gloria Hallelujah *", "Goblin One" => "Goblin One *", "Gochi Hand" => "Gochi Hand *", "Gorditas" => "Gorditas *", "Goudy Bookletter 1911" => "Goudy Bookletter 1911 *", "Graduate" => "Graduate *", "Gravitas One" => "Gravitas One *", "Great Vibes" => "Great Vibes *", "Gruppo" => "Gruppo *", "Gudea" => "Gudea *", "Habibi" => "Habibi *", "Hammersmith One" => "Hammersmith One *", "Handlee" => "Handlee *", "Hanuman" => "Hanuman *", "Happy Monkey" => "Happy Monkey *", "Henny Penny" => "Henny Penny *", "Herr Von Muellerhoff" => "Herr Von Muellerhoff *", "Holtwood One SC" => "Holtwood One SC *", "Homemade Apple" => "Homemade Apple *", "Homenaje" => "Homenaje *", "IM Fell DW Pica" => "IM Fell DW Pica *", "IM Fell DW Pica SC" => "IM Fell DW Pica SC *", "IM Fell Double Pica" => "IM Fell Double Pica *", "IM Fell Double Pica SC" => "IM Fell Double Pica SC *", "IM Fell English" => "IM Fell English *", "IM Fell English SC" => "IM Fell English SC *", "IM Fell French Canon" => "IM Fell French Canon *", "IM Fell French Canon SC" => "IM Fell French Canon SC *", "IM Fell Great Primer" => "IM Fell Great Primer *", "IM Fell Great Primer SC" => "IM Fell Great Primer SC *", "Iceberg" => "Iceberg *", "Iceland" => "Iceland *", "Imprima" => "Imprima *", "Inconsolata" => "Inconsolata *", "Inder" => "Inder *", "Indie Flower" => "Indie Flower *", "Inika" => "Inika *", "Irish Grover" => "Irish Grover *", "Istok Web" => "Istok Web *", "Italiana" => "Italiana *", "Italianno" => "Italianno *", "Jim Nightshade" => "Jim Nightshade *", "Jockey One" => "Jockey One *", "Jolly Lodger" => "Jolly Lodger *", "Josefin Sans" => "Josefin Sans *", "Josefin Slab" => "Josefin Slab *", "Judson" => "Judson *", "Julee" => "Julee *", "Julius Sans One" => "Julius Sans One *", "Junge" => "Junge *", "Jura" => "Jura *", "Just Another Hand" => "Just Another Hand *", "Just Me Again Down Here" => "Just Me Again Down Here *", "Kameron" => "Kameron *", "Karla" => "Karla *", "Kaushan Script" => "Kaushan Script *", "Kelly Slab" => "Kelly Slab *", "Kenia" => "Kenia *", "Khmer" => "Khmer *", "Knewave" => "Knewave *", "Kotta One" => "Kotta One *", "Koulen" => "Koulen *", "Kranky" => "Kranky *", "Kreon" => "Kreon *", "Kristi" => "Kristi *", "Krona One" => "Krona One *", "La Belle Aurore" => "La Belle Aurore *", "Lancelot" => "Lancelot *", "Lato" => "Lato *", "League Script" => "League Script *", "Leckerli One" => "Leckerli One *", "Ledger" => "Ledger *", "Lekton" => "Lekton *", "Lemon" => "Lemon *", "Lilita One" => "Lilita One *", "Limelight" => "Limelight *", "Linden Hill" => "Linden Hill *", "Lobster" => "Lobster *", "Lobster Two" => "Lobster Two *", "Londrina Outline" => "Londrina Outline *", "Londrina Shadow" => "Londrina Shadow *", "Londrina Sketch" => "Londrina Sketch *", "Londrina Solid" => "Londrina Solid *", "Lora" => "Lora *", "Love Ya Like A Sister" => "Love Ya Like A Sister *", "Loved by the King" => "Loved by the King *", "Lovers Quarrel" => "Lovers Quarrel *", "Luckiest Guy" => "Luckiest Guy *", "Lusitana" => "Lusitana *", "Lustria" => "Lustria *", "Macondo" => "Macondo *", "Macondo Swash Caps" => "Macondo Swash Caps *", "Magra" => "Magra *", "Maiden Orange" => "Maiden Orange *", "Mako" => "Mako *", "Marck Script" => "Marck Script *", "Marko One" => "Marko One *", "Marmelad" => "Marmelad *", "Marvel" => "Marvel *", "Mate" => "Mate *", "Mate SC" => "Mate SC *", "Maven Pro" => "Maven Pro *", "Meddon" => "Meddon *", "MedievalSharp" => "MedievalSharp *", "Medula One" => "Medula One *", "Megrim" => "Megrim *", "Merienda One" => "Merienda One *", "Merriweather" => "Merriweather *", "Metal" => "Metal *", "Metamorphous" => "Metamorphous *", "Metrophobic" => "Metrophobic *", "Michroma" => "Michroma *", "Miltonian" => "Miltonian *", "Miltonian Tattoo" => "Miltonian Tattoo *", "Miniver" => "Miniver *", "Miss Fajardose" => "Miss Fajardose *", "Modern Antiqua" => "Modern Antiqua *", "Molengo" => "Molengo *", "Monofett" => "Monofett *", "Monoton" => "Monoton *", "Monsieur La Doulaise" => "Monsieur La Doulaise *", "Montaga" => "Montaga *", "Montez" => "Montez *", "Montserrat" => "Montserrat *", "Moul" => "Moul *", "Moulpali" => "Moulpali *", "Mountains of Christmas" => "Mountains of Christmas *", "Mr Bedfort" => "Mr Bedfort *", "Mr Dafoe" => "Mr Dafoe *", "Mr De Haviland" => "Mr De Haviland *", "Mrs Saint Delafield" => "Mrs Saint Delafield *", "Mrs Sheppards" => "Mrs Sheppards *", "Muli" => "Muli *", "Mystery Quest" => "Mystery Quest *", "Neucha" => "Neucha *", "Neuton" => "Neuton *", "News Cycle" => "News Cycle *", "Niconne" => "Niconne *", "Nixie One" => "Nixie One *", "Nobile" => "Nobile *", "Nokora" => "Nokora *", "Norican" => "Norican *", "Nosifer" => "Nosifer *", "Nothing You Could Do" => "Nothing You Could Do *", "Noticia Text" => "Noticia Text *", "Nova Cut" => "Nova Cut *", "Nova Flat" => "Nova Flat *", "Nova Mono" => "Nova Mono *", "Nova Oval" => "Nova Oval *", "Nova Round" => "Nova Round *", "Nova Script" => "Nova Script *", "Nova Slim" => "Nova Slim *", "Nova Square" => "Nova Square *", "Numans" => "Numans *", "Nunito" => "Nunito *", "Odor Mean Chey" => "Odor Mean Chey *", "Old Standard TT" => "Old Standard TT *", "Oldenburg" => "Oldenburg *", "Oleo Script" => "Oleo Script *", "Open Sans" => "Open Sans *", "Open Sans Condensed" => "Open Sans Condensed *", "Orbitron" => "Orbitron *", "Original Surfer" => "Original Surfer *", "Oswald" => "Oswald *", "Over the Rainbow" => "Over the Rainbow *", "Overlock" => "Overlock *", "Overlock SC" => "Overlock SC *", "Ovo" => "Ovo *", "Oxygen" => "Oxygen *", "PT Mono" => "PT Mono *", "PT Sans, sans-serif" => "PT Sans *", "PT Sans Caption, sans-serif" => "PT Sans Caption *", "PT Sans Narrow, sans-serif" => "PT Sans Narrow *", "PT Serif" => "PT Serif *", "PT Serif Caption" => "PT Serif Caption *", "Pacifico" => "Pacifico *", "Parisienne" => "Parisienne *", "Passero One" => "Passero One *", "Passion One" => "Passion One *", "Patrick Hand" => "Patrick Hand *", "Patua One" => "Patua One *", "Paytone One" => "Paytone One *", "Permanent Marker" => "Permanent Marker *", "Petrona" => "Petrona *", "Philosopher" => "Philosopher *", "Piedra" => "Piedra *", "Pinyon Script" => "Pinyon Script *", "Plaster" => "Plaster *", "Play" => "Play *", "Playball" => "Playball *", "Playfair Display" => "Playfair Display *", "Podkova" => "Podkova *", "Poiret One" => "Poiret One *", "Poller One" => "Poller One *", "Poly" => "Poly *", "Pompiere" => "Pompiere *", "Pontano Sans" => "Pontano Sans *", "Port Lligat Sans" => "Port Lligat Sans *", "Port Lligat Slab" => "Port Lligat Slab *", "Prata" => "Prata *", "Preahvihear" => "Preahvihear *", "Press Start 2P" => "Press Start 2P *", "Princess Sofia" => "Princess Sofia *", "Prociono" => "Prociono *", "Prosto One" => "Prosto One *", "Puritan" => "Puritan *", "Quantico" => "Quantico *", "Quattrocento" => "Quattrocento *", "Quattrocento Sans" => "Quattrocento Sans *", "Questrial" => "Questrial *", "Quicksand" => "Quicksand *", "Qwigley" => "Qwigley *", "Radley" => "Radley *", "Raleway" => "Raleway *", "Rammetto One" => "Rammetto One *", "Rancho" => "Rancho *", "Rationale" => "Rationale *", "Redressed" => "Redressed *", "Reenie Beanie" => "Reenie Beanie *", "Revalia" => "Revalia *", "Ribeye" => "Ribeye *", "Ribeye Marrow" => "Ribeye Marrow *", "Righteous" => "Righteous *", "Roboto Condensed" => "Roboto Condensed *", "Rochester" => "Rochester *", "Rock Salt" => "Rock Salt *", "Rokkitt" => "Rokkitt *", "Ropa Sans" => "Ropa Sans *", "Rosario" => "Rosario *", "Rosarivo" => "Rosarivo *", "Rouge Script" => "Rouge Script *", "Ruda" => "Ruda *", "Ruge Boogie" => "Ruge Boogie *", "Ruluko" => "Ruluko *", "Ruslan Display" => "Ruslan Display *", "Russo One" => "Russo One *", "Ruthie" => "Ruthie *", "Sail" => "Sail *", "Salsa" => "Salsa *", "Sancreek" => "Sancreek *", "Sansita One" => "Sansita One *", "Sarina" => "Sarina *", "Satisfy" => "Satisfy *", "Schoolbell" => "Schoolbell *", "Seaweed Script" => "Seaweed Script *", "Sevillana" => "Sevillana *", "Shadows Into Light" => "Shadows Into Light *", "Shadows Into Light Two" => "Shadows Into Light Two *", "Shanti" => "Shanti *", "Share" => "Share *", "Shojumaru" => "Shojumaru *", "Short Stack" => "Short Stack *", "Siemreap" => "Siemreap *", "Sigmar One" => "Sigmar One *", "Signika" => "Signika *", "Signika Negative" => "Signika Negative *", "Simonetta" => "Simonetta *", "Sirin Stencil" => "Sirin Stencil *", "Six Caps" => "Six Caps *", "Slackey" => "Slackey *", "Smokum" => "Smokum *", "Smythe" => "Smythe *", "Sniglet" => "Sniglet *", "Snippet" => "Snippet *", "Sofia" => "Sofia *", "Sonsie One" => "Sonsie One *", "Sorts Mill Goudy" => "Sorts Mill Goudy *", "Special Elite" => "Special Elite *", "Spicy Rice" => "Spicy Rice *", "Spinnaker" => "Spinnaker *", "Spirax" => "Spirax *", "Squada One" => "Squada One *", "Stardos Stencil" => "Stardos Stencil *", "Stint Ultra Condensed" => "Stint Ultra Condensed *", "Stint Ultra Expanded" => "Stint Ultra Expanded *", "Stoke" => "Stoke *", "Sue Ellen Francisco" => "Sue Ellen Francisco *", "Sunshiney" => "Sunshiney *", "Supermercado One" => "Supermercado One *", "Suwannaphum" => "Suwannaphum *", "Swanky and Moo Moo" => "Swanky and Moo Moo *", "Syncopate" => "Syncopate *", "Tangerine" => "Tangerine *", "Taprom" => "Taprom *", "Telex" => "Telex *", "Tenor Sans" => "Tenor Sans *", "The Girl Next Door" => "The Girl Next Door *", "Tienne" => "Tienne *", "Tinos" => "Tinos *", "Titan One" => "Titan One *", "Trade Winds" => "Trade Winds *", "Trocchi" => "Trocchi *", "Trochut" => "Trochut *", "Trykker" => "Trykker *", "Tulpen One" => "Tulpen One *", "Ubuntu" => "Ubuntu *", "Ubuntu Condensed" => "Ubuntu Condensed *", "Ubuntu Mono" => "Ubuntu Mono *", "Ultra" => "Ultra *", "Uncial Antiqua" => "Uncial Antiqua *", "UnifrakturCook" => "UnifrakturCook *", "UnifrakturMaguntia" => "UnifrakturMaguntia *", "Unkempt" => "Unkempt *", "Unlock" => "Unlock *", "Unna" => "Unna *", "VT323" => "VT323 *", "Varela" => "Varela *", "Varela Round" => "Varela Round *", "Vast Shadow" => "Vast Shadow *", "Vibur" => "Vibur *", "Vidaloka" => "Vidaloka *", "Viga" => "Viga *", "Voces" => "Voces *", "Volkhov" => "Volkhov *", "Vollkorn" => "Vollkorn *", "Voltaire" => "Voltaire *", "Waiting for the Sunrise" => "Waiting for the Sunrise *", "Wallpoet" => "Wallpoet *", "Walter Turncoat" => "Walter Turncoat *", "Wellfleet" => "Wellfleet *", "Wire One" => "Wire One *", "Yanone Kaffeesatz" => "Yanone Kaffeesatz *", "Yellowtail" => "Yellowtail *", "Yeseva One" => "Yeseva One *", "Yesteryear" => "Yesteryear *", "Zeyada" => "Zeyad *a" ); return $google_faces; } /** * Checks font options to see if a Google font is selected. * If so, options_typography_enqueue_google_font is called to enqueue the font. * Ensures that each Google font is only enqueued once. */ if ( !function_exists( 'options_typography_google_fonts' ) ) { function options_typography_google_fonts() { global $font_array, $char_array; $all_google_fonts = array_keys( options_typography_get_google_fonts() ); $all_character_sets = array_keys( of_recognized_font_characters() ); // Define all the options that possibly have a unique Google font $h1_heading = of_get_option('h1_heading', 'Arial'); $h2_heading = of_get_option('h2_heading', 'Arial'); $h3_heading = of_get_option('h3_heading', 'Arial'); $h4_heading = of_get_option('h4_heading', 'Arial'); $h5_heading = of_get_option('h5_heading', 'Arial'); $h6_heading = of_get_option('h6_heading', 'Arial'); $google_mixed_3 = of_get_option('google_mixed_3', 'Rokkitt, serif'); if ( of_get_option( 'logo_typography' ) ) { $logo_typography = of_get_option('logo_typography'); } if ( of_get_option( 'menu_typography' ) ) { $menu_typography = of_get_option('menu_typography', 'Arial'); } if ( of_get_option( 'footer_menu_typography' ) ) { $footer_menu_typography = of_get_option('footer_menu_typography', 'Arial'); } // Get the font face for each option and put it in an array if ( isset($h1_heading) && is_array($h1_heading) ) $selected_fonts['h1_heading'] = $h1_heading['face']; if ( isset($h2_heading) && is_array($h2_heading) ) $selected_fonts['h2_heading'] = $h2_heading['face']; if ( isset($h3_heading) && is_array($h3_heading) ) $selected_fonts['h3_heading'] = $h3_heading['face']; if ( isset($h4_heading) && is_array($h4_heading) ) $selected_fonts['h4_heading'] = $h4_heading['face']; if ( isset($h5_heading) && is_array($h5_heading) ) $selected_fonts['h5_heading'] = $h5_heading['face']; if ( isset($h6_heading) && is_array($h6_heading) ) $selected_fonts['h6_heading'] = $h6_heading['face']; if ( isset($google_mixed_3) && is_array($google_mixed_3) ) $selected_fonts['google_mixed_3'] = $google_mixed_3['face']; if ( isset($logo_typography) && is_array($logo_typography) ) $selected_fonts['logo_typography'] = $logo_typography['face']; if ( isset($menu_typography) && is_array($menu_typography) ) $selected_fonts['menu_typography'] = $menu_typography['face']; if ( isset($footer_menu_typography) && is_array($footer_menu_typography) ) $selected_fonts['footer_menu_typography'] = $footer_menu_typography['face']; if ( isset($h1_heading) && is_array($h1_heading) ) $selected_character['h1_heading'] = $h1_heading['character']; if ( isset($h2_heading) && is_array($h2_heading) ) $selected_character['h2_heading'] = $h2_heading['character']; if ( isset($h3_heading) && is_array($h3_heading) ) $selected_character['h3_heading'] = $h3_heading['character']; if ( isset($h4_heading) && is_array($h4_heading) ) $selected_character['h4_heading'] = $h4_heading['character']; if ( isset($h5_heading) && is_array($h5_heading) ) $selected_character['h5_heading'] = $h5_heading['character']; if ( isset($h6_heading) && is_array($h6_heading) ) $selected_character['h6_heading'] = $h6_heading['character']; if ( isset($google_mixed_3) && is_array($google_mixed_3) ) $selected_character['google_mixed_3'] = $google_mixed_3['character']; if ( isset($logo_typography) && is_array($logo_typography) ) $selected_character['logo_typography'] = $logo_typography['character']; if ( isset($menu_typography) && is_array($menu_typography) ) $selected_character['menu_typography'] = $menu_typography['character']; if ( isset($footer_menu_typography) && is_array($footer_menu_typography) ) $selected_character['footer_menu_typography'] = $footer_menu_typography['character']; if ( isset($selected_fonts) && !empty($selected_fonts) ) { // Remove any duplicates in the list $selected_fonts = array_unique($selected_fonts); // Check each of the unique fonts against the defined Google fonts // If it is a Google font, go ahead and call the function to enqueue it foreach ( $selected_fonts as $key => $font ) { if ( in_array( $font, $all_google_fonts ) ) { options_typography_enqueue_google_font($key, $font); } } } // $selected_character = array_unique($selected_character); if ( isset($selected_character) && !empty($selected_character) ) { foreach ( $selected_character as $key => $character ) { if ( in_array( $character, $all_character_sets ) ) { options_typography_enqueue_google_character_set($key, $character); } } } if (isset($font_array)) { foreach ($font_array as $key => $value) { switch ($font_array[$key]) { case 'Open+Sans+Condensed': $font_array[$key]= $font_array[$key].':300'; break; default: // break; } options_typography_enqueue_google_fonts($font_array[$key], $char_array[$key]); } } } } add_action( 'wp_enqueue_scripts', 'options_typography_google_fonts' ); /** * Enqueues the Google $font that is passed */ function options_typography_enqueue_google_font($key, $font) { global $font_array; $font = explode(',', $font); $font = $font[0]; // Certain Google fonts need slight tweaks in order to load properly // Like our friend "Raleway" if ( $font == 'Raleway' ) $font = 'Raleway:100'; $font = str_replace(" ", "+", $font); $font_array[$key] = $font; } function options_typography_enqueue_google_character_set($key, $character) { global $char_array; $char_array[$key] = '&subset=' . $character; } function options_typography_enqueue_google_fonts($f, $ch) { wp_enqueue_style( "options_typography_$f", "//fonts.googleapis.com/css?family=$f$ch", false, null, 'all' ); } /* * Outputs the selected option panel styles inline into the <head> */ function options_typography_styles() { $output = ''; $input = ''; if ( of_get_option( 'h1_heading' ) ) { $input = of_get_option( 'h1_heading' ); $output .= options_typography_font_styles( of_get_option( 'h1_heading' ) , 'h1'); } if ( of_get_option( 'h2_heading' ) ) { $input = of_get_option( 'h2_heading' ); $output .= options_typography_font_styles( of_get_option( 'h2_heading' ) , 'h2'); } if ( of_get_option( 'h3_heading' ) ) { $input = of_get_option( 'h3_heading' ); $output .= options_typography_font_styles( of_get_option( 'h3_heading' ) , 'h3'); } if ( of_get_option( 'h4_heading' ) ) { $input = of_get_option( 'h4_heading' ); $output .= options_typography_font_styles( of_get_option( 'h4_heading' ) , 'h4'); } if ( of_get_option( 'h5_heading' ) ) { $input = of_get_option( 'h5_heading' ); $output .= options_typography_font_styles( of_get_option( 'h5_heading' ) , 'h5'); } if ( of_get_option( 'h6_heading' ) ) { $input = of_get_option( 'h6_heading' ); $output .= options_typography_font_styles( of_get_option( 'h6_heading' ) , 'h6'); } if ( of_get_option( 'google_mixed_3' ) ) { $input = of_get_option( 'google_mixed_3' ); $output .= options_typography_font_styles_body( $input , 'body'); } if ( of_get_option( 'logo_typography' ) ) { $input = of_get_option( 'logo_typography' ); $output .= options_typography_font_styles( of_get_option( 'logo_typography' ) , '.logo_h__txt, .logo_link'); } if ( of_get_option( 'menu_typography' ) ) { $input = of_get_option( 'menu_typography' ); $output .= options_typography_font_styles( of_get_option( 'menu_typography' ) , '.sf-menu > li > a'); } if ( of_get_option( 'footer_menu_typography' ) ) { $input = of_get_option( 'footer_menu_typography' ); $output .= options_typography_font_styles( of_get_option( 'footer_menu_typography' ) , '.nav.footer-nav a'); } if ( $output != '' ) { $output = "\n<style type='text/css'>\n" . $output . "</style>\n"; echo $output; } } add_action('wp_head', 'options_typography_styles'); /* * Returns a typography option in a format that can be outputted as inline CSS */ function options_typography_font_styles($option, $selectors) { $output = $selectors . ' { '; $output .= 'font: ' . $option['style'] . ' ' . $option['size'] . '/'.$option['lineheight'].' ' . $option['face'] . '; '; $output .= ' color:' . $option['color'] .'; '; $output .= '}'; $output .= "\n"; return $output; } /* * This is one the same but for body */ function options_typography_font_styles_body($option, $selectors) { $output = $selectors . ' { '; switch ( $option['style'] ) { case 'normal': $output .= 'font-weight: normal;'; break; case 'italic': $output .= 'font-style: italic;'; break; case 'bold': $output .= 'font-weight: bold;'; break; case 'bold italic': $output .= 'font-weight: bold; font-style: italic;'; break; default: $output .= 'font-weight: normal; font-style: normal;'; break; } $output .= '}'; $output .= "\n"; return $output; } /** * Is a given string a color formatted in hexidecimal notation? * * @param string Color in hexidecimal notation. "#" may or may not be prepended to the string. * @return bool * */ function of_validate_hex( $hex ) { $hex = trim( $hex ); /* Strip recognized prefixes. */ if ( 0 === strpos( $hex, '#' ) ) { $hex = substr( $hex, 1 ); } elseif ( 0 === strpos( $hex, '%23' ) ) { $hex = substr( $hex, 3 ); } /* Regex match. */ if ( 0 === preg_match( '/^[0-9a-fA-F]{6}$/', $hex ) ) { return false; } else { return true; } }