Snippety

Jak při kódování šablony implementovat menu

Autor příspěvku Zdeněk Vojáček

Dnes si povíme něco o tom, jak šablonu naučit používat menu. Když šablonu vytváříte, tak není samozřejmost, že bude mít menu – nestačí ho v administraci nastavit a doufat že se zobrazí. Osobně to dělám tak, že v každé šabloně mám functions.php, kde učím šablonu všemu, co chci aby uměla.

V podstatě se nejedná o menu jako takové, ale o pozici, kam se bude vkládat menu, které si vytvoříte v administraci. Pozice se musí se zaregistrovat, to uděláte následující funkcí, kterou zapíšete do functions.php.

function register_menu() {
register_nav_menu('primary-menu', __('Primary Menu','theme'));
}
add_action('init', 'register_menu');

Poté, co tento kód zapíšete do functions.php se vám vaše pozice zobrazí v administraci a můžete jí přiřadit menu, pro které se rozhodnete.

Pokud přidáváte více menu do šablony, můžete využít zkrácený zápis:

register_nav_menus( array(
		'primary'   => __( 'Top primary menu', 'theme' ),
		'secondary' => __( 'Secondary menu in left sidebar', 'theme' ),
  	) );

Dostanete se tam přes Vzhled -> Menu -> Umístění v šabloně

menu        umistění

Na tomto obrázku vidíte vlevo zaregistrovanou pozici a vpravo můžete vybrat menu, které v ní zobrazíte.

konec

Když máte takto hotovou pozici i nastavené menu, jenž se v ní má zobrazit, tak vám už jen stačí říct šabloně, kde ho má vypsat. To uděláte tak, že do šablony vložíte kód, který se o to postará.

wp_nav_menu( array( 'theme_location' => 'primary-menu' ) );

Nyní je hotovo. Šablona má pozici pro menu a vložené menu se vypisuje.
Příště si povíme něco o tom, jak menu upravit.

O autorovi

Zdeněk Vojáček

Milovník žen, masa a PHP kódu

Zanechat komentář

Získejte více informací o WordPress!

Připojte se do našeho emailového seznamu a nenechte si ujít informace, novinky a návody ze světa WordPressu.

Úspěšně jste se zapsali do našeho newsletteru. Děkujeme!

Tomáš Cirkl

Tomáš Cirkl

WordPress specialista

Blog WPlama.cz píši už více než 5 let. O WordPress přednáším a pořádám školení. Pro své klienty vytvářím a spravuji webové stránky.