Как добавить поддержку моей теме для пользовательских меню?
Вопрос
Я прочитал несколько учебных пособий о том, как добавить функциональность пользовательских меню, добавленных в версию 3.0, к моей теме, но все они, кажется, несколько отличаются, и я не уверен, содержат ли они лишний код. Кроме того, я прочитал, что код для регистрации вашей темы как совместимый с меню изменился между RC и публичным выпуском.
Каков самый простой способ добавить поддержку пользовательских меню в мою тему?
Решение
Самый простой способ - использовать register_nav_menus
функция. Это должно быть подключено к 'after_setup_theme'
:
function my_cool_menu_function(){
register_nav_menus( array(
'primary' => 'Primary Navigation'
));
}
add_action( 'after_setup_theme', 'my_cool_menu_function' );
Затем, в вашей теме, просто назовите позицию этого меню:
wp_nav_menu( array( 'theme_location' => 'primary' ) );
Другие советы
Добавьте это в functions.php
вашей темы. Если у вас его нет, создайте его.:
<?php
add_theme_support('menus');
function register_my_menus() {
$args = array(
'menu-1' => __( 'Main Menu' )
);
register_nav_menus( $args );
}
add_action( 'init', 'register_my_menus' );
?>
И это может пойти куда угодно, у меня есть в header.php
(видеть wp_nav_menu
() Документы):
<?php
$args = array(
'menu' => 'Main Menu',
'sort_column' => 'menu_order',
'container' => 'div',
);
wp_nav_menu( $args ); ?>
Это как включить пользовательскую навигацию в его простейшую форму, я считаю, что она поднимает навигацию с не идентификатором:
<div class="access">
<?php wp_nav_menu(); ?>
</div>
Есть также основные варианты, которые могут быть переданы в функцию, вот что я обычно использую:
$navArgs=array(
'menu_id' => 'nav', // target the nav menu
'container' => '', // don't wrap the menu in <ul>
);