theme_location === "secondary" && in_array('menu-item-has-children', $item->classes, true)) { $output = ''; return $output; } if ($args->theme_location === "primary" && in_array('menu-item-has-children', $item->classes, true) && $depth === 0) { $page_icon = get_field('page_icon', $item->object_id) ?? null; $icon = isset($page_icon) && is_array($page_icon) && !empty($page_icon['url']) ? '' : ''; $output = ''; return $output; } if ($args->theme_location === "primary" && !in_array('menu-item-has-children', $item->classes, true) && $depth === 1) { $page_icon = get_field('page_icon', $item->object_id) ?? null; $icon_html = isset($page_icon) && is_array($page_icon) && !empty($page_icon['url']) ? '' : ''; $page_subtitle = get_field('page_subtitle', $item->object_id) ?? ''; $subtitle_html = '' . $page_subtitle . ''; if ($item->type === 'post_type_archive') { $icon_html = get_archive_page_icon_html($item->object); $subtitle_html = get_archive_page_subtitle_html($item->object); } $output = '' . $icon_html . ''; return $output; } return $output; } add_filter('walker_nav_menu_start_el', 'wrap_parent_menu_item_buttons', 10, 4); /* ---------------------------------------------------------------- ##### Adds option 'li_class' to 'wp_nav_menu ------------------------------------------------------------------*/ function tailpress_nav_menu_add_li_class($classes, $item, $args, $depth) { if (isset($args->li_class)) { $classes[] = $args->li_class; } if (isset($args->{"li_class_$depth"})) { $classes[] = $args->{"li_class_$depth"}; } return $classes; } add_filter('nav_menu_css_class', 'tailpress_nav_menu_add_li_class', 10, 4); /* ---------------------------------------------------------------- ##### Adds option 'submenu_class' to 'wp_nav_menu' ------------------------------------------------------------------*/ function tailpress_nav_menu_add_submenu_class($classes, $args, $depth) { if (isset($args->submenu_class)) { $classes[] = $args->submenu_class; } if (isset($args->{"submenu_class_$depth"})) { $classes[] = $args->{"submenu_class_$depth"}; } return $classes; } add_filter('nav_menu_submenu_css_class', 'tailpress_nav_menu_add_submenu_class', 10, 3); /* ---------------------------------------------------------------- ##### Inject ACF page_icon and page_subtitle into submenu items ------------------------------------------------------------------*/ function carhop_add_submenu_item_icon($output, $item, $depth, $args) { // Only for submenu items (depth >= 1 if (!isset($args->theme_location) || $args->theme_location !== 'secondary' || $depth < 1 || !function_exists('get_field')) { return $output; } // Try fetching the icon from the menu item itself, then fallback to linked object (e.g., page) $pageIcon = get_field('page_icon', $item->object_id); if (empty($pageIcon)) { return $output; } $icon_html = ''; $excerpt_html = ''; // Attachment array with ID (ACF image field) if (is_array($pageIcon) && isset($pageIcon['url'])) { $icon_html = ''; } if (has_excerpt($item->object_id)) { $excerpt_html = ''; } return '' . $icon_html . ''; } add_filter('walker_nav_menu_start_el', 'carhop_add_submenu_item_icon', 15, 4);