/* ================================ 🔄 Mobile vertikale Navigation ================================ */ function miss_mole_enqueue_mobile_nav_scripts() { // Prüfen ob mobiles Gerät (serverseitig) $is_mobile = wp_is_mobile(); // CSS immer einbinden für responsive Design wp_enqueue_style( 'miss-mole-mobile-nav', get_stylesheet_directory_uri() . '/mobile-nav.css', array('kadence-parent'), wp_get_theme()->get('Version') ); // JavaScript für alle Geräte einbinden (enthält eigene Prüfung für Mobile) wp_enqueue_script( 'miss-mole-mobile-nav-js', get_stylesheet_directory_uri() . '/mobile-nav.js', array('jquery'), wp_get_theme()->get('Version'), true ); // Menü-ID und Namen direkt definieren $topmenu_id = 398; // Die bekannte ID des Topmenüs // Menü-Objekt direkt abrufen $menu_obj = wp_get_nav_menu_object($topmenu_id); $menu_name = $menu_obj ? $menu_obj->name : 'Topmenü'; $menu_css_id = 'menu-' . sanitize_title($menu_name); // Daten an JavaScript übergeben wp_localize_script( 'miss-mole-mobile-nav-js', 'missNavData', array( 'mainMenuID' => $menu_css_id, 'mainMenuName' => $menu_name, 'specificMenuID' => $topmenu_id, 'ajaxurl' => admin_url('admin-ajax.php') ) ); } add_action('wp_enqueue_scripts', 'miss_mole_enqueue_mobile_nav_scripts'); /** * AJAX-Endpunkt für das Topmenü */ function miss_mole_get_menu_items() { // Menü-ID aus der Anfrage oder Standard-ID verwenden $menu_id = isset($_POST['menu_id']) ? intval($_POST['menu_id']) : 398; $menu_items = wp_get_nav_menu_items($menu_id); // Wenn keine Items gefunden wurden, Fallback-Menü verwenden if (!$menu_items) { $fallback_menu = array( array( 'title' => 'Startseite', 'url' => home_url(), 'children' => array() ), array( 'title' => 'Shop', 'url' => function_exists('wc_get_page_id') ? get_permalink(wc_get_page_id('shop')) : home_url('/shop/'), 'children' => array() ), array( 'title' => 'Sale', 'url' => home_url('/sale/'), 'children' => array() ), array( 'title' => 'Über uns', 'url' => home_url('/ueber-uns/'), 'children' => array() ), array( 'title' => 'Kontakt', 'url' => home_url('/kontakt/'), 'children' => array() ) ); wp_send_json_success($fallback_menu); return; } // Menüstruktur formatieren $formatted_menu = array(); foreach ($menu_items as $item) { if ($item->menu_item_parent == 0) { // Hauptmenüpunkt $menu_item = array( 'title' => $item->title, 'url' => $item->url, 'children' => array() ); // Untermenüs suchen foreach ($menu_items as $child) { if ($child->menu_item_parent == $item->ID) { $menu_item['children'][] = array( 'title' => $child->title, 'url' => $child->url ); } } $formatted_menu[] = $menu_item; } } wp_send_json_success($formatted_menu); } add_action('wp_ajax_miss_mole_get_menu_items', 'miss_mole_get_menu_items'); add_action('wp_ajax_nopriv_miss_mole_get_menu_items', 'miss_mole_get_menu_items');