Доброго времени! Есть меню, состоящее из страниц. К страницам добавлены изображения. Хочу вывести изображения этих страниц в меню без плагина. Все операции делаю в function.php Картинки получаю так:
function get_post_img () {
$locations = get_nav_menu_locations();
$items = wp_get_nav_menu_items( $locations['menu-main'] );
foreach ( $items as $key => $menu_item ) {
$post_url = $menu_item->url;
$post_id = url_to_postid($post_url);
$post_img = get_the_post_thumbnail($post_id);
return $result = ''. $post_img . '';
}
}
И там же пытаюсь вывести их в меню
add_filter( 'wp_nav_menu_args', 'add_item_img' );
function add_item_img( $args='' ){
$args['link_before'] = get_post_img ();
return $args;
}
Но столкнулся с проблемой, аргументы типа link_before не умеют работать с переменными и добавляют одинаковый элемент для всех. В данном случае, код получает картинку первой страницы в списке и добавляет ко всем пунктам меню. Я так понимаю, что как то через walker, на стадии формирования элементов меню нужно функцией get_post_img () добавить картинки, но не могу догнать как.