web-development-kb-pt.site

Como faço para adicionar suporte ao meu tema para menus personalizados?

Eu li alguns tutoriais sobre como adicionar a funcionalidade dos menus personalizados adicionados na versão 3.0 ao meu tema, mas todos eles parecem diferir um pouco, e não tenho certeza se eles contêm código supérfluo. Além disso, li que o código para registrar seu tema como compatível com menus mudou entre o RC e o lançamento público.

Qual é a maneira mais simples de adicionar suporte para menus personalizados ao meu tema?

6
nobody

A maneira mais fácil é usar a função register_nav_menus. Isso deve ser ligado a 'after_setup_theme':

function my_cool_menu_function(){
  register_nav_menus( array(
    'primary' => 'Primary Navigation'
  ));
}

add_action( 'after_setup_theme', 'my_cool_menu_function' );

Em seguida, no seu tema, basta chamar a posição desse menu:

wp_nav_menu( array( 'theme_location' => 'primary' ) );
9
John P Bloch

Adicione isto a functions.php do seu tema. Se você não tiver um, crie-o:

<?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' );
?>

E isso pode ir a qualquer lugar, eu tenho em header.php (veja wp_nav_menu () docs):

<?php
$args = array(
    'menu' => 'Main Menu',
    'sort_column' => 'menu_order',
    'container' => 'div',
);
wp_nav_menu( $args ); ?>
3
artlung

Como incluir a navegação customizada em sua forma mais simples, acredito que pegue a navegação sem identificador:

<div class="access">
  <?php wp_nav_menu(); ?>
</div>

Existem também opções básicas que podem ser passadas para a função, aqui está o que geralmente uso:

$navArgs=array(
    'menu_id' => 'nav',    // target the nav menu
    'container' => '',     // don't wrap the menu in <ul>
);
0
Ben Everard