queue ) ) { $elementor_post_styles = array(); foreach ( $wp_styles->queue as $handle ) { if ( isset( $wp_styles->registered[ $handle ] ) ) { $src = $wp_styles->registered[ $handle ]->src; // Detect Elementor per-post CSS by path pattern. if ( $src && preg_match( '/uploads\/elementor\/css\/post-\d+\.css/', $src ) ) { $elementor_post_styles[] = $handle; } } } foreach ( $elementor_post_styles as $handle ) { wp_dequeue_style( $handle ); } } } // Ultimate Social Media Icons: dequeue on homepage, archives, and blog index. if ( is_front_page() || is_home() || is_archive() ) { $usmi_handles = apply_filters( 'peptide_starter_perf_usmi_handles', array( 'SFSImainCss', 'SFSIjqueryModernizr', 'SFSIjqueryShuffle', 'SFSIjqueryrandom-shuffle', 'SFSICustomJs', ) ); foreach ( $usmi_handles as $handle ) { wp_dequeue_style( $handle ); wp_dequeue_script( $handle ); } } } /** * Slim Google Fonts to essential weights only. * * Rewrites fonts.googleapis.com URLs to keep only: * - Roboto: 400, 500, 700 (no italics) * - Roboto Slab: 400, 700 (no italics) * * This reduces the font CSS from ~6KB to <1KB and the font payload by ~80%. * Filterable per family via 'peptide_starter_perf_font_weights'. * * @param string $src Stylesheet URL. * @param string $handle Stylesheet handle. * @return string Rewritten URL or original. */ function peptide_starter_perf_slim_google_fonts( $src, $handle ) { if ( ! $src || false === strpos( $src, 'fonts.googleapis.com' ) ) { return $src; } // Parse the URL to get the query string. $parsed = wp_parse_url( $src ); if ( empty( $parsed['query'] ) ) { return $src; } // Extract family parameter. parse_str( $parsed['query'], $query_vars ); if ( empty( $query_vars['family'] ) ) { return $src; } $families_str = $query_vars['family']; // Decode the family string (it may be URL-encoded). $families_str = rawurldecode( $families_str ); // Split families by + (multiple families in one request). $families = explode( '+', $families_str ); // Get configured font weights from filter. $font_weights_config = apply_filters( 'peptide_starter_perf_font_weights', array( 'Roboto' => array( 400, 500, 700 ), 'Roboto Slab' => array( 400, 700 ), ) ); $rewritten_families = array(); foreach ( $families as $family ) { // Clean up the family name (URL decode + trim). $family = trim( rawurldecode( $family ) ); // Check if this family has a configured weight list. $matched = false; foreach ( $font_weights_config as $config_family => $weights ) { if ( 0 === strcasecmp( $family, $config_family ) ) { // Rewrite with only the specified weights. $weights_str = implode( ',', $weights ); $rewritten_families[] = $config_family . ':' . $weights_str; $matched = true; break; } } // If no config match, pass through unchanged. if ( ! $matched ) { $rewritten_families[] = $family; } } // If nothing changed, return original. if ( count( $rewritten_families ) === count( $families ) ) { // Check if any actually changed (compare raw values). $original_str = implode( '+', $families ); $rewritten_str = implode( '+', $rewritten_families ); if ( $original_str === $rewritten_str ) { return $src; } } // Rebuild the URL with the new family parameter. $new_query_vars = $query_vars; $new_query_vars['family'] = implode( '+', $rewritten_families ); $new_query_str = http_build_query( $new_query_vars ); // Reconstruct the full URL. $new_src = $parsed['scheme'] . '://' . $parsed['host'] . $parsed['path'] . '?' . $new_query_str; return $new_src; } /** * Add preconnect hints for font servers. * * Reduces TLS + DNS latency for Google Fonts requests on cold cache. * Adds preconnect for fonts.googleapis.com and fonts.gstatic.com. * * @param array $urls List of URLs to add hints for. * @param string $rel The relationship type (preconnect, dns-prefetch, etc.). * @return array Modified URL list. */ function peptide_starter_perf_resource_hints( $urls, $rel ) { // Only add hints for preconnect relationships. if ( 'preconnect' !== $rel ) { return $urls; } // Add font servers if not already present. $font_urls = apply_filters( 'peptide_starter_perf_font_preconnect_urls', array( 'https://fonts.googleapis.com', 'https://fonts.gstatic.com', ) ); foreach ( $font_urls as $url ) { if ( ! in_array( $url, $urls, true ) ) { $urls[] = $url; } } return $urls; } /** * Defer the cookie-notice script to avoid render-blocking. * * Adds 'defer' attribute to cookie-notice JS while preserving DOM-ready order. * This ensures the cookie banner loads without blocking initial rendering. * * @param string $tag The script tag HTML. * @param string $handle The script handle. * @param string $src The script URL (unused). * @return string Modified script tag. */ function peptide_starter_perf_defer_cookie_notice( $tag, $handle, $src ) { // Only modify the cookie-notice script. if ( 'cookie-notice-front' !== $handle ) { return $tag; } // Add defer attribute if not already present. if ( false === strpos( $tag, 'defer' ) ) { // Insert defer before the closing >. $tag = str_replace( '