Как через шорткод вывести wp_nav_menu внутри HTML структуры?

Здравствуйте, делаю плагин, в котором собираю кастомное меню с помощью класса Walker, затем вывожу его с помощью функции wp_nav_menu через шорткод. Задача вывести меню вместе с такой HTML структурой:

<div id="main">
   <div class="wrap1">
     <div class="wrap2">
       <div class="wrap3">
         ТУТ САМО МЕНЮ
       </div>
     </div>
     <div class="arrows">
     тут некоторые теги управления
     </div>
  </div>
</div>

Я пытался в шорткоде выводить просто так:

function my_function(){
        $variable = '<div id="main"><div class="wrap1"><div class="wrap2"><div class="wrap3">';
        $variable .= wp_nav_menu( 'тут массив аргументов меню' );
        $variable .= '</div></div><div class="arrows"><i>некоторые теги управления</i></div></div></div>';  
    
         return $variable;
    }
    add_shortcode('menu-test','my_function');

Однако в результате все выводится отдельно, сначала меню, а затем вся структура HTML
Подскажите как вывести wp_nav_menu внутри HTML структуры?

Благодарю за помощь!
  • Вопрос задан
  • 211 просмотров
Пригласить эксперта
Ответы на вопрос 2
SeaInside
@SeaInside
15 лет пилю все эти штуки
wp_nav_menu(['echo' => false]), м? :)
Оно по умолчанию его выводит, а не возвращает, вот и выводится сначала меню, потом всё остальное.
Ответ написан
Комментировать
web86
@web86 Автор вопроса
Вау, точно!
У меня стояло ['echo' => true], изменил на false и все нормально вывелось.
Спасибо!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы