Специальная проблема с пользовательским интерфейсом пользовательского навигационного меню

Поскольку я хочу добавить <span class="dashicons [class]"></span> внутри каждой ссылки моего меню, мне нужно было создать настраиваемое навигационное меню. Я сделал это по коду ниже, который отлично работает, но есть одна проблема.

Я использую пользовательские ссылки для отображения архивов типа post в меню. И я делаю сравнение между идентификатором почты страницы и идентификатором объекта элемента, чтобы проверить, является ли элемент текущей страницей. Но с пользовательскими ссылками идентификатор объекта не существует, поэтому я не могу выполнить сравнение.

 $location = 'header-navigation'; if( ( $locations = get_nav_menu_locations() ) && isset( $locations[$location] ) ) { global $post; $post_id = $post->ID; $menu = wp_get_nav_menu_object( $locations[$location] ); $menu_items = wp_get_nav_menu_items( $menu->term_id ); $menu_list = '<nav class="site-navigation">'; $menu_list .= '<ul id="menu-' . $location . '" class="grid-container">'; foreach( ( array ) $menu_items as $key => $menu_item ) { $id = $menu_item->ID; $title = $menu_item->title; $classes = $menu_item->classes; $object_id = get_post_meta( $id, '_menu_item_object_id', true ); $current = ( $object_id == $post_id ) ? 'current-menu-item' : ''; $menu_list .= '<li id="menu-item-' . $id . '" class="' . $current . '"><a href="' . $menu_item->url . '"><span class="dashicons ' . $classes[0] . '"></span>' . $title . '</a></li>'; } $menu_list .= '</ul>'; $menu_list .= '</nav>'; echo $menu_list; }