@PiVirus

Вывод изображений страниц в меню wordpress без плагина?

Доброго времени! Есть меню, состоящее из страниц. К страницам добавлены изображения. Хочу вывести изображения этих страниц в меню без плагина. Все операции делаю в 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 () добавить картинки, но не могу догнать как.
  • Вопрос задан
  • 894 просмотра
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix
Java Software Engineer
Смотрите в сторону Walker.
Для большей кастомизации меню нужен walker
https://wp-kama.ru/function/walker
https://misha.blog/wordpress/nav-menu-walkers.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы