Вывод произвольного меню. Функция wp_nav_menu

Posted in Wordpress

Вывод произвольного меню. Функция wp_nav_menu

Создание меню в Wordrpess, а также сортировка страниц и категорий часто становится довольно сложной проблемой для начинающих вебмастеров. В связи с этим я решил написать небольшое руководство, в котором мы подробно рассмотрим, как создавать произвольные меню в WordPress. С их помощью вы сможете самостоятельно создавать произвольные меню, добавлять или удалять пункты меню, изменять их название, расположение и вложенность.

В одной из предыдущих статей мы уже рассматривали способ, как сортировать страницы и рубрики в WordPress при помощи плагинов. К счастью на данный момент в WordPress появилась встроенная функция, которая позволяет создавать произвольные меню, не прибегая к использованию плагинов. Данная функция доступна во всех версиях WordPress, начиная с версии 3.0.

Сразу хочу обратить ваше внимание на то, что поддержка произвольных меню включена не во всех шаблонах. В связи с этим статья будет состоять из двух частей. В первой части статьи мы рассмотрим, как создавать пункты меню в WordPress через административную панель, если произвольные меню уже подключены в шаблоне.

Во второй части статьи мы научимся самостоятельно включить поддержку произвольных меню в WordPress и настраивать вывод меню через php функцию wp_nav_menu. Эти знания вам пригодятся на случай, если в вашем шаблоне не предусмотрено использование произвольных меню или же вы сами пишете или редактируете тему оформления WordPress и хотите добавить туда возможность создания произвольных меню.

 

Включение поддержки произвольных меню в WordPress

 

Первым делом нам нужно зарегистрировать использование произвольных меню и самих меню. Для этого открываем на редактирование файл function.php вашей темы оформления и добавляем следующий код.

register_nav_menus(array(
'top' => 'Верхнее меню'
));

Где «top» — идентификатор меню, а «Верхнее меню» — название месторасположения.

Если нужно добавить несколько меню, то перечисляем их через запятую.

register_nav_menus(array(
'top' => 'Верхнее меню',
'left' => 'Левое меню'
));

После добавления данного кода поддержка произвольных меню будет включена автоматически. Убедиться в этом вы можете, перейдя в Административную панель – Внешний вид – Меню. Но самой регистрации меню недостаточно. Меню нужно еще вывести в шаблоне. Для этого мы воспользуемся специальной функцией wp_nav_menu.

Вывод произвольного меню. Функция wp_nav_menu

Как уже говорилось выше, выводить произвольные меню мы будем при помощи функции wp_nav_menu, которая может принимать следующие параметры.

$args array(
'menu'            => '',              // Название меню (string).
'container'       => 'div',           // Контейнер меню (string). В него помещается список ul.
'container_class' => '',              // Класс контейнера (string).
'container_id'    => '',              // Id контейнера (string).
'menu_class'      => 'menu',          // Класс тега ul (string).
'menu_id'         => '',              // Id тега ul (string).
'echo'            => true,            // Выводить на экран или возвращать для обработки (boolean).
'fallback_cb'     => 'wp_page_menu',  // Резервная функция на случай, если произвольное меню не существует (string).
'before'          => '',              // Текст перед <a> каждой ссылки (string).
'after'           => '',              // Текст после </a> каждой ссылки (string).
'link_before'     => '',              // Текст перед анкором ссылки (string).
'link_after'      => '',              // Текст после анкора ссылки (string).
'depth'           => 0,               // Глубина вложенности (integer). 0 - неограниченно, 2 - двухуровневое произвольное меню.
'walker'          => ,                // Класс, собирающий меню. Default: new Walker_Nav_Menu. (object).
'theme_location'  => '');             // Расположение меню в шаблоне. Указываем идентификатор меню. (string).

При этом параметры можно передавать как через массив, так и через строку. В любом случае меню будет работать. Для наглядности рассмотрим оба варианта.

Передача параметров через массив

<?php
$args array(
'menu_id'=>'topmenu',
'theme_location'=>'top',
'container'=>''
);
wp_nav_menu($args);
?>

Передача параметров через строку

wp_nav_menu('menu_id=topmenu&theme_location=top&container=');

Лично я предпочитаю второй вариант, так как он более компактный, на мой взгляд. В любом случае результатом работы функции будет следующий код.

<ul id="topmenu">
<li><a href="#">Пункт 1</a></li>
<li><a href="#">Пункт 2</a></li>
<li><a href="#">Пункт 3</a></li>
</ul>

На этом я заканчиваю данную статью. Основные моменты мы рассмотрели и в 99% случаев данной информации вам будет достаточно для самостоятельного создания произвольных меню в WordPress. Если же у вас возникнут какие-то вопросы, вы всегда сможете задать их в комментариях.

На этом все. Удачи вам и успехов в создании сайтов на WordPress.

Поділіться в соц мережах!

0