Jak na menu ve WordPress 3.0

Když vyšel nový WordPress 3.0, radoval jsem se víceméně z jedné vlastnosti – a to tvorba jednotlivých nezávislých menu s možností jejich umístění kamkoliv do vašeho témátka. Tento návod je hlavně pro začátečníky. Profíci se v tom dokáží pohrabat mnohem podrobněji. Mě stačí, že to funguje a WordPress mi vypisuje to, co potřebuji.

Chci, abych dostal toto:

<ul id="nav">
<li class="item"><a href="#" title="title">ITEM</a></li>
<li class="item"><a href="#" title="title">ITEM</a></li>
<li class="item"><a href="#" title="title">ITEM</a></li>
</ul>

1. vaše témátko musí podporovat přidávání menu…

Pokud píšete nové témátko ještě “postaru”, tak se vám při kliknutí na Vzhled/Menu zobrazí informace, že toto témátko nepodporuje menu…

The current theme does not natively support menus, but you can use the “Custom Menu” widget to add any menus you create here to the theme’s sidebar.

Proto do souboru functions.php zkopírujte toto:

<?php
add_action( 'init', 'register_my_menus' ); 

function register_my_menus() {
register_nav_menus(
array(
'header' => __( 'Menu 1' ),
'sluzby' => __( 'Menu 2' )
)
);
}
?>

Tím vytvoříte v mém případě dvě pozice pro různá menu. Moje menu se budou jmenovat header a sluzby. V administraci Vzhled/Menu si je nyní vytvoříme. Tvorba jednotlivých menu je hodně intuitivní, pracuje se i s drag&drop, proto postup tvorby struktury jednotlivých menu nechám na vás.

2. Umístění v šabloně

Nyní řekneme WordPressu, kde se mají jednotlivá menu zobrazovat.

Tím jsme nastavili kde se zobrazí.

3. Umístění do vašeho témátka

V souboru functions.php jsme definovali dvě pozice – Menu 1 a Menu 2. Nyní si otevřete soubor, např. header.php, kam chcete menu vložit. Takto můžete menu vložit klidně do footer.php, sidebar.php… prostě kamkoli. Stačí zkopírovat tento kus kódu:

<?php wp_nav_menu(array('menu_id'=>'nav',
'theme_location'=>'header'));?>
Tím na stránce zobrazíte menu s názvem header, atd.

TIP:

'menu_id' => 'nav'

Tento kousek kódu mi zajistí, ža menu bude mít id=”nav”. Pokud potřebujete class=”nav” stačí napsat:

'menu_class' => 'nav'

Podrobnosti k funkci wp_nav_menu:

Function Reference/wp nav menu