/* ===============================
FleetEye Child Theme Functions
================================= */
/* -------------------------------
Custom Scripts
--------------------------------- */
wp_deregister_script('price');
wp_register_script('price', get_stylesheet_directory_uri() . '/price.js', array(), 1, true);
wp_register_script('swiper', get_stylesheet_directory_uri() . '/swiper.min.js', array(), 1, true);
wp_enqueue_script('price');
wp_enqueue_script('swiper');
// Enable Gravity Forms field label visibility
add_filter('gform_enable_field_label_visibility_settings', '__return_true');
// Load old jQuery for Avada 3.8.6
add_action('wp_enqueue_scripts', 'load_old_jquery_fix', 100);
function load_old_jquery_fix() {
if (!is_admin()) {
wp_deregister_script('jquery');
wp_register_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js', false, '1.11.3');
wp_enqueue_script('jquery');
}
}
/* -------------------------------
Advanced Dynamic Preloader + LCP
Detect all nested Fusion Containers above-the-fold
--------------------------------- */
function fleeteye_advanced_preload_and_lcp() {
if (!is_front_page()) return;
$images = [];
// Load homepage HTML
$homepage_html = file_get_contents(home_url('/'));
if (!$homepage_html) return;
libxml_use_internal_errors(true);
$dom = new DOMDocument();
$dom->loadHTML($homepage_html);
$xpath = new DOMXPath($dom);
// 1️⃣ All tags above-the-fold (limit 10)
$img_tags = $xpath->query('//img');
$count = 0;
foreach ($img_tags as $img) {
if ($count >= 10) break;
$src = $img->getAttribute('src');
if ($src) {
$images[$src] = true;
$count++;
}
}
// 2️⃣ Inline background-images in all nested Fusion containers
$fusion_nodes = $xpath->query("//*[contains(@class,'fusion-fullwidth') or contains(@class,'fusion-row') or contains(@class,'fusion-column-wrapper')]");
foreach ($fusion_nodes as $node) {
$style = $node->getAttribute('style');
if (preg_match_all('/background-image:\s*url\((["\']?)(.*?)\1\)/i', $style, $matches)) {
foreach ($matches[2] as $bg_url) {
if ($bg_url) $images[$bg_url] = true;
}
}
}
// 3️⃣ Slider images (Fusion Slider / lazy-loaded)
$slider_nodes = $xpath->query("//*[contains(@class,'fusion-slider') or contains(@class,'fusion-slide')]");
foreach ($slider_nodes as $slider) {
if ($slider->hasAttribute('data-src')) {
$images[$slider->getAttribute('data-src')] = true;
}
$imgs = $slider->getElementsByTagName('img');
foreach ($imgs as $img) {
$src = $img->getAttribute('src');
if ($src) $images[$src] = true;
}
}
// 4️⃣ Output preload links & hidden
tags (max 10 images)
$preload_count = 0;
foreach ($images as $url => $_) {
if ($preload_count >= 10) break;
if (strpos($url, 'http') !== 0) $url = home_url($url);
// Preload
echo '' . "\n";
// Hidden
for LCP discovery
echo '' . "\n";
$preload_count++;
}
}
add_action('wp_head', 'fleeteye_advanced_preload_and_lcp');