it-swarm-es.com

¿Cómo agrego soporte a mi tema para menús personalizados?

He leído algunos tutoriales sobre cómo agregar la funcionalidad de los menús personalizados agregados en la versión 3.0 a mi tema, pero todos parecen diferir en cierta medida, y no estoy seguro de que contengan código superfluo. Además, leí que el código para registrar su tema como compatible con el menú cambió entre el RC y el lanzamiento público.

¿Cuál es la forma más sencilla de agregar soporte para menús personalizados a mi tema?

6
nobody

La forma más fácil es usar la función register_nav_menus. Esto debería estar conectado 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' );

Luego, en su tema, simplemente llame a la posición de ese menú:

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

Agregue esto a functions.php de su tema. Si no tienes uno, créalo:

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

Y esto puede ir a cualquier parte, lo tengo en header.php (ver wp_nav_menu () docs):

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

Esta forma de incluir la navegación personalizada en su forma más simple, creo que recoge la navegación sin identificador:

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

También hay opciones básicas que se pueden pasar a la función, esto es lo que generalmente uso:

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