/** * Enqueue Stylesheets and Scripts * @since 1.0.0 */ function tf_enqueue_scripts() { // Get theme version for theme scripts and styles $theme_version = wp_get_theme()->display('Version'); /////////////////// //Enqueue styles /////////////////// // Flow style.css wp_enqueue_style('flow-style', get_template_directory_uri() . '/style.css', array(), $theme_version); $responsive = TF_Settings::get('disable_responsive'); if (!$responsive || !checked($responsive, 'on', false)) { wp_enqueue_style('themify-media-queries', get_template_directory_uri() . '/media-queries.css', array(), $theme_version); } if (is_child_theme()) { wp_enqueue_style('style', get_stylesheet_uri(), array(), $theme_version); } /////////////////// //Enqueue scripts /////////////////// // WordPress comment-reply script if (is_single() || is_page()) { wp_enqueue_script('comment-reply'); } }
/** * Filter body classes * * @since 1.0.0 * @access public * @param array $classes * @return array */ public function body_class($classes) { global $TF, $TF_Layout; $classes[] = 'tf_theme-' . $TF->active_theme->slug; $classes[] = wp_is_mobile() ? 'touch' : 'no-touch'; if (TF_Model::is_tf_editor_active()) { $classes[] = 'frontend tf_active tf_admin'; } if (TF_Model::is_tf_custom_css_active()) { $classes[] = 'tf_custom_css_active'; } if (TF_Model::is_tf_custom_css_active_only()) { $classes[] = 'tf_custom_css_active_only'; } if (!empty($TF_Layout->layout_name)) { $classes[] = 'tf_template tf_template_' . $TF_Layout->layout_name; } $responsive = TF_Settings::get('disable_responsive'); if ($responsive && checked($responsive, 'on', false)) { $classes[] = 'tf_responsive_disabled'; } // return the $classes array return $classes; }
/** * Check if the font passed references a Google Font and if so, enqueue it. * * @since 1.0.0 * * @uses TF_Engine_Style_loader::web_fonts */ function maybe_load_fonts() { if (!empty($this->web_fonts) && is_array($this->web_fonts)) { $the_fonts = array(); foreach ($this->web_fonts as $font) { if (is_array($font->variant)) { $font->variant = implode(',', array_filter($font->variant, 'trim')); } $the_fonts[] = str_replace(' ', '+', $font->name) . ':' . $font->variant; } $subsets = 'latin'; $web_fonts_setting = TF_Settings::get('webfonts'); if (isset($web_fonts_setting['subsets'])) { $web_fonts_setting['subsets'] = trim($web_fonts_setting['subsets']); if (!empty($web_fonts_setting['subsets'])) { $subsets .= ',' . str_replace(' ', '', $web_fonts_setting['subsets']); } } $the_fonts = implode('|', $the_fonts); wp_enqueue_style('tf-google-fonts-' . md5($the_fonts), tf_https_esc('http://fonts.googleapis.com/css') . "?family={$the_fonts}&subset={$subsets}", array('flow-style')); } }
/** * Grab google fonts lists from api * @return array */ public static function grab_remote_google_fonts() { $web_fonts = TF_Settings::get('webfonts'); $subsets = isset($web_fonts['subsets']) ? $web_fonts['subsets'] : false; $fonts_file_path = self::get_google_fonts_file(); if ($subsets && '' != $subsets) { $user_subsets = explode(',', str_replace(' ', '', $subsets)); } else { $user_subsets = array(); } $subsets = apply_filters('tf_google_fonts_subsets', array_merge(array('latin'), $user_subsets)); $subsets_count = count($subsets); if (isset($GLOBALS['google_fonts_json_file_cache']) && '' != $GLOBALS['google_fonts_json_file_cache']) { $response = $GLOBALS['google_fonts_json_file_cache']; } else { if (!function_exists('WP_Filesystem')) { require_once ABSPATH . 'wp-admin/includes/file.php'; } WP_Filesystem(); global $wp_filesystem; $response = $wp_filesystem->get_contents($fonts_file_path); if (false === $response) { $response = call_user_func('file_get_contents', $fonts_file_path); if (false === $response) { ob_start(); include_once $fonts_file_path; $response = ob_get_contents(); ob_end_clean(); } } $GLOBALS['google_fonts_json_file_cache'] = $response; } $fonts = array(); if ($response !== false) { if (isset($GLOBALS['google_fonts_json_decode_cache']) && '' != $GLOBALS['google_fonts_json_decode_cache']) { $results = $GLOBALS['google_fonts_json_decode_cache']; } else { $results = json_decode($response); $GLOBALS['google_fonts_json_decode_cache'] = $results; } foreach ($results->items as $font) { // If user specified additional subsets if ($subsets_count > 1) { $font_subsets = $font->subsets; $subsets_match = true; // Check that all specified subsets are available in this font foreach ($subsets as $subset) { if (!in_array($subset, $font_subsets)) { $subsets_match = false; } } // Ok, this font supports all subsets requested by user, add it to the list if ($subsets_match) { $fonts[] = array('family' => $font->family, 'variant' => $font->variants); } } else { $fonts[] = array('family' => $font->family, 'variant' => $font->variants); } } } return $fonts; }