Решил проблему следующим образом
add_filter( 'nav_menu_link_attributes', 'filter_function_name_3020', 10, 4 );
function filter_function_name_3020( $atts, $item, $args, $depth ){
$img = $item->description;
$link = $atts['href'];
if ( $args->theme_location == 'index-menu' ) {
$args->link_before = '
<div class="main-item">
<div class="img-wrap">
<a href="'.$link.'">
<div class="img-inner">
<img src="'.$img.'" alt="img">
</div>
</a>
</div>
<h3 class="main-title">';
$args->link_after = '</h3>
<a href="'.$link.'" class="home-button button-red">View Page</a>';
}
return $atts;
}
В меню в поле description прописал путь до картинке из медиафайлов
Пришлось и верстку немного поменять, но задачу решил без произвольных типов записей и других методов.