Использование меню такого типа очень удобно, особенно если делаешь сайт для заказчиков. Конечно, можно вывести рубрики при помощи wp_list_categories или вообще написать на HTML (лично я всегда так и делаю, когда создаю сайт для себя), но будет нудно, если пункты меню будут часто меняться и дополняться.
Для начала нужно включить поддержку меню темой, вставив этот код в файл functions.php:
if (function_exists('add_theme_support')) { add_theme_support('menus'); } |
А это более правильный вариант с регистрацией областей темы:
if(function_exists('register_nav_menus')){ register_nav_menus( array( // создаём любое количество областей 'main_menu' => 'Главное меню', // 'имя' => 'описание' 'foot_menu' => 'Меню в футере' ) ); } |
После этого в админке появится вкладка Внешний вид > Меню. Заходим туда и создаём своё меню, назовём его например «menu1».
Засуньте этот код в то место в теме, куда вы хотите вставить менюху:
<?php wp_nav_menu("menu=menu1"); ?> |
Точно так же можно насоздавать ещё кучу менюшек, указывая в скобках их названия. Это был примитивный пример.
Итак, функция wp_nav_menu()
wp_nav_menu($args); |
Параметры по умолчанию:
$args = array( 'theme_location' => , // область темы 'menu' => , // какое меню нужно вставить (по порядку: id, ярлык, имя) 'container' => 'div', // блок, в который нужно поместить меню, укажите false, чтобы не помещать в блок 'container_class' => 'menu-{menu slug}-container', // css-класс блока 'container_id' => , // id блока 'menu_class' => 'menu', // css-класс меню 'menu_id' => , // id меню 'echo' => true, // вывести или записать в переменную 'fallback_cb' => 'wp_page_menu', // какую функцию использовать если меню не существует, укажите false, чтобы не использовать ничего 'before' => , // текст или html-код, который нужно вставить перед каждым <a> 'after' => , // после </a> 'link_before' => , // текст перед анкором ссылки 'link_after' => , // после анкора и перед </a> 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', // HTML-шаблон 'depth' => 0 // количество уровней вложенности ); |
Источник: misha.blog