Функция навигации по меню, введенная в WordPress 3.0, позволяет интуитивное создание и поддержание навигационных меню в темах.
По крайней мере, стандартной теме понадобится главное меню навигации, возможно, в заголовке и дополнительное меню навигации в футере. Чтобы это сделать, мы зарегистрируем эти два меню “Главное меню” и “Вспомогательное меню”.
Хотя это не особенно новая функция, но все же хорошо обернуть if function_exists () в случае, если пользователь застрял в предварительной установке 3.0:
В файле functions.php, включите следующее:
if ( function_exists( 'register_nav_menus' ) ) {
register_nav_menus(
array(
'main_menu' => __( 'Main Menu', 'cake' ),
'secondary_menu' => __( 'Secondary Menu', 'cake' ),
)
);
}
Теперь, когда меню зарегистрированы, мы должны “сказать” теме, куда их выводить. Мы хотим, чтоб наше Главное меню (Main Menu) появлялось в нашем заголовке. Для этого, в header.php файле, мы включаем следующий код:
<?php if ( has_nav_menu( 'main_menu' ) ) { ?>
<?php $defaults = array(
'theme_location' => 'main_menu',
'menu' => '',
'container' => false,
'echo' => true,
'fallback_cb' => false,
'items_wrap' => '<ul id="%1$s"> %3$s</ul>',
'depth' => 0 );
wp_nav_menu( $defaults );
?>
<?php } else { ?>
<ul>
<?php wp_list_pages('title_li='); ?>
</ul>
<?php } ?>
Во-первых, мы проверяем, если меню под названием “main_menu” было определено, если да, то тогда мы вставляем его содержимое здесь; в противном случае мы возвращаемся к по умолчанию wp_list_pages (), который мы можем более детально настроить для отображения ссылок. Если вы хотите еще больше настроить меню, тогда смотрите WordPress Codex page on wp_nav_menu () функции.
Мы хотим, чтобы вспомогательное меню (secondary menu) появлялось в футере, для этого мы открываем footer.php и включаем следующий код:
<?php if ( has_nav_menu( 'secondary_menu' ) ) { ?>
<?php $defaults = array(
'theme_location' => 'secondary_menu',
'menu' => '',
'container' => false,
'echo' => true,
'fallback_cb' => false,
'items_wrap' => '<ul id="%1$s"> %3$s</ul>',
'depth' => 0 );
wp_nav_menu( $defaults );
?>
<?php } else { ?>
<ul>
<?php wp_list_pages('title_li='); ?>
</ul>
<?php } ?>