¿Cómo agrego soporte para poner al inicio de menús personalizados?
Pregunta
He leído algunos tutoriales sobre cómo añadir la funcionalidad de los menús personalizados añadidos en la versión 3.0 de mi tema, pero todos ellos parecen diferir de alguna manera, y no estoy seguro de si contienen código superfluo. Además leí que el código para registrar su tema como menú-compatibles cambió entre la RC y la difusión pública.
¿Cuál es la forma más sencilla de añadir soporte para menús personalizados a mi tema?
Solución
La forma más sencilla es utilizar las funcionarán.Esta register_nav_menus
deben ser enganchado en 'after_setup_theme'
:
function my_cool_menu_function(){
register_nav_menus( array(
'primary' => 'Primary Navigation'
));
}
add_action( 'after_setup_theme', 'my_cool_menu_function' );
A continuación, en su tema, simplemente llame a la posición de ese menú:
wp_nav_menu( array( 'theme_location' => 'primary' ) );
Otros consejos
Añadir esto a functions.php
de su tema. Si no tiene uno, crearlo:.
<?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 ninguna 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 ); ?>
Esta forma de incluir la navegación personalizada en su forma más simple, creo que recoge la navegación con identificador no:
<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>
);