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 = '