Как вставить в начало меню (wp_nav_menu) ссылку на главную, чтобы её не было на главной?
Единственный способ добавить ссылку "На главную" в меню, которое выводится с помощью wp_nav_menu() - это добавить ссылку в настройках.
Но так ссылка будет отображаться и на главной странице. А мне нужно, чтобы ссылка "на главную" не отображалась на главной странице сайта.
Вопрос такой: как можно вставить в начало меню, которое выводится с помощью wp_nav_menu ссылку на главную страницу, так чтобы эта ссылка не отображалась на главной странице?
Это можно сделать с помощью условного тега is_front_page() при помощи замены.
Для этого при получении кода меню в шаблоне, указываем параметр echo = 0, чтобы меню не выводилось на экран и обрабатываем код: вставляем ссылку на главную:
# получаем меню $args = array( 'theme_location' => 'foo', 'menu' => 'foo', 'container' => 'div', 'container_class' => 'topbar', 'echo' => 0 ); $menu = wp_nav_menu( $args ); # вставляем ссылку везде кроме главной if( ! is_front_page() ) $menu = preg_replace('~<li~', '<li><a href="/">Главная</a></li><li', $menu, 1 ); # выводим echo $menu;