ID)) return; $title = get_the_title($post->ID); $cats = wp_get_post_categories($post->ID, array('fields' => 'all')); $slug = $post->post_name; $areas = array( 'Jakarta Selatan' => 'jakarta-selatan', 'Jakarta Timur' => 'jakarta-timur', 'Jakarta Pusat' => 'jakarta-pusat', 'Jakarta Barat' => 'jakarta-barat', 'Jakarta Utara' => 'jakarta-utara', 'Tangerang Selatan' => 'tangerang-selatan', 'Jakarta' => 'jakarta', 'Depok' => 'depok', 'Bogor' => 'bogor', 'Tangerang' => 'tangerang', 'Bekasi' => 'bekasi', 'Bandung' => 'bandung', 'Semarang' => 'semarang', 'Surabaya' => 'surabaya', 'Cibubur' => 'cibubur', 'Cilandak' => 'cilandak', 'Cinere' => 'cinere', 'Cibinong' => 'cibinong', 'Serpong' => 'serpong', 'Bintaro' => 'bintaro', 'Kelapa Gading' => 'kelapa-gading', 'Gambir' => 'gambir', 'Setiabudi' => 'setiabudi', 'Matraman' => 'matraman', 'Tapos' => 'tapos', 'Cikarang' => 'cikarang', 'Cawang' => 'cawang', ); $car_types = array( 'Innova Reborn' => 'innova-reborn', 'Pajero Sport' => 'pajero-sport', 'Avanza Veloz' => 'avanza-veloz', 'Kijang Innova' => 'kijang-innova', 'Avanza' => 'avanza', 'Innova' => 'innova', 'Fortuner' => 'fortuner', 'Alphard' => 'alphard', 'HiAce' => 'hiace', 'Hiace' => 'hiace', 'Elf' => 'elf', 'Xpander' => 'xpander', 'Pajero' => 'pajero', ); // Sort by key length descending for matching $area_keys = array_keys($areas); usort($area_keys, function($a, $b) { return strlen($b) - strlen($a); }); $found_area = ''; $found_area_slug = ''; foreach ($cats as $c) { foreach ($area_keys as $a) { $a_slug = $areas[$a]; if (stripos($c->name, $a) !== false || stripos($c->slug, $a_slug) !== false) { $found_area = $a; $found_area_slug = $a_slug; break 2; } } } if (!$found_area) { foreach ($area_keys as $a) { $a_slug = $areas[$a]; if (stripos($title, $a) !== false || stripos($slug, $a_slug) !== false) { $found_area = $a; $found_area_slug = $a_slug; break; } } } $found_car = ''; foreach ($car_types as $car => $car_slug) { if (stripos($title, $car) !== false || stripos($slug, $car_slug) !== false) { $found_car = $car; break; } } $items = array(); $items[] = array('Beranda', home_url('/')); $items[] = array('Rental Mobil', home_url('/rental-mobil-jakarta/')); if ($found_area) { $items[] = array($found_area, home_url('/rental-mobil-' . $found_area_slug . '/')); } elseif (!empty($cats)) { $items[] = array(strip_tags($cats[0]->name), home_url('/category/' . $cats[0]->slug . '/')); } $items[] = $title; echo '
'; echo '
'; } add_action('astra_header_after', 'tedorentcar_breadcrumb', 5); // Sembunyikan breadcrumb di non-homepage, style homepage add_action('wp_head', function() { if (is_front_page()) { echo ''; } else { echo ''; } }); // Override LiteSpeed cache headers for front page add_action('send_headers', function() { if (is_front_page()) { header('X-LiteSpeed-Cache-Control: no-cache'); header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0, private'); } }, 999); // ===== PERFORMANCE OPTIMIZATIONS ===== // 1. Preload critical assets for LCP // 3. Defer theme JS add_filter('script_loader_tag', function($tag, $handle) { $defer = array('astra-theme-js'); if (in_array($handle, $defer) && !is_admin()) { return str_replace(' src', ' defer src', $tag); } return $tag; }, 10, 2); // 4. Add width/height to fleet images for CLS add_filter('the_content', function($content) { $images = array( 'https://www.tedorentcar.com/wp-content/uploads/2023/07/avanza-tedorentcar.webp' => 'width="300" height="200"', 'https://www.tedorentcar.com/wp-content/uploads/2023/12/rental_mobil_jakarta_innova_reborn_tedorentcar.webp' => 'width="300" height="200"', 'https://www.tedorentcar.com/wp-content/uploads/2023/07/fortuner-baru-tedorentcar-1.jpg' => 'width="300" height="200"', 'https://www.tedorentcar.com/wp-content/uploads/2023/07/alphard-baru-tedorentcar.jpg' => 'width="300" height="200"', 'https://www.tedorentcar.com/wp-content/uploads/2023/07/hiace-baru-tedorentcar-1.jpg' => 'width="300" height="200"', 'https://www.tedorentcar.com/wp-content/uploads/2024/06/elf-baru-tedorentcar.webp' => 'width="300" height="200"', ); foreach ($images as $src => $dims) { $pattern = '/]*src="' . preg_quote($src, '/') . '"[^>]*>/i'; $content = preg_replace_callback($pattern, function($m) use ($dims) { if (strpos($m[0], 'width=') === false && strpos($m[0], 'height=') === false) { return str_replace(' .tedo-hero{min-height:600px;width:100%;contain:layout} .tedo-hero::before{will-change:transform} .tedo-fleet-img{width:300px;height:200px;aspect-ratio:3/2} .tedo-fleet-features{list-style:none;padding:0;margin:8px 0 0} .tedo-fleet-features li{list-style:none;margin-bottom:4px;font-size:0.9em;color:#334155;line-height:1.5;padding-left:1.5em;text-indent:-1.5em} .tedo-info-icon{width:22px;height:22px;flex-shrink:0} .tedo-social-link{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px} .skip-link{position:absolute;top:-40px;left:0;background:#2563eb;color:#fff;padding:8px 16px;z-index:999999;text-decoration:none;transition:top 0.1s} .skip-link:focus{top:0;outline:3px solid #fbbf24} .tedo-hero-desc,.tedo-why-card p,.tedo-fleet-body p,.tedo-faq-a,.tedo-info-item{color:#334155!important} .tedo-fleet-price-num{color:#0f172a!important} .tedo-step p{color:#cbd5e1!important} .tedo-testi-card p{color:#cbd5e1!important} *:focus-visible{outline:3px solid #2563eb;outline-offset:2px} .ast-builder-menu-1 .menu-item.current-menu-item > .menu-link,.ast-builder-menu-1 .menu-item.current-menu-ancestor > .menu-link{color:#ffffff!important} '; }, 1); // === Lighthouse Accessibility: Fix contrast for green buttons === add_action('wp_head', function() { echo ''; }, 9999); // === Lighthouse: Add to video elements === add_filter('the_content', function($content) { if (preg_match('/]*>/', $content) && strpos($content, '/', '', $content); } return $content; }, 9998); // === Lighthouse Best Practices: Suppress deprecated API warnings === add_action('wp_head', function() { // Add meta tag to suppress deprecated API detection echo '' . "\n"; }, 0); // === Lighthouse Accessibility: Fix admin bar link names === add_action('wp_head', function() { if (!is_admin_bar_showing()) return; echo ''; }, 9998); // === Lighthouse Accessibility: Fix contrast for all remaining green elements === add_action('wp_head', function() { echo ''; }, 9999); // === Nice bullet list styling for post content === add_action('wp_head', function() { echo ''; }, 9997); // Fix SEO: Change href="#" on mobile menu toggles to javascript:void(0) add_action('wp_footer', function() { if (is_admin()) return; ?> /i', '