Unde este definită locația temei pentru meniul principal într-un șablon WordPress?
Sunt destul de nou în WordPress (vin din Joomla) și am următoarea nelămurire legată de Locația Temei pentru meniul principal.
De exemplu, folosind tema preinstalată Twenty Twelve, dacă în backend merg la: Aspect ---> Meniuri ---> Gestionare Locații pot asigna meniul principal doar unei locații specifice numită Meniu Principal.
Cred că această zonă se află în fișierul header.php al temei Twenty Twelve (pentru că meniul meu principal este afișat în antetul paginii) dar nu o pot găsi, acesta este conținutul fișierului header.php:
<?php
/**
* Șablonul Header pentru tema noastră
*
* Afișează toată secțiunea <head> și tot ce urmează până la <div id="main">
*
* @package WordPress
* @subpackage Twenty_Twelve
* @since Twenty Twelve 1.0
*/
?><!DOCTYPE html>
<!--[if IE 7]>
<html class="ie ie7" <?php language_attributes(); ?>>
<![endif]-->
<!--[if IE 8]>
<html class="ie ie8" <?php language_attributes(); ?>>
<![endif]-->
<!--[if !(IE 7) | !(IE 8) ]><!-->
<html <?php language_attributes(); ?>>
<!--<![endif]-->
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>" />
<meta name="viewport" content="width=device-width" />
<title><?php wp_title( '|', true, 'right' ); ?></title>
<link rel="profile" href="http://gmpg.org/xfn/11" />
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
<?php // Încarcă fișierul JavaScript HTML5 pentru a adăuga suport pentru elementele HTML5 în versiunile mai vechi de IE. ?>
<!--[if lt IE 9]>
<script src="<?php echo get_template_directory_uri(); ?>/js/html5.js" type="text/javascript"></script>
<![endif]-->
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<div id="page" class="hfeed site">
<header id="masthead" class="site-header" role="banner">
<hgroup>
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
<h2 class="site-description"><?php bloginfo( 'description' ); ?></h2>
</hgroup>
<nav id="site-navigation" class="main-navigation" role="navigation">
<h3 class="menu-toggle"><?php _e( 'Menu', 'twentytwelve' ); ?></h3>
<a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentytwelve' ); ?>"><?php _e( 'Skip to content', 'twentytwelve' ); ?></a>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
</nav><!-- #site-navigation -->
<?php if ( get_header_image() ) : ?>
<a href="<?php echo esc_url( home_url( '/' ) ); ?>"><img src="<?php header_image(); ?>" class="header-image" width="<?php echo get_custom_header()->width; ?>" height="<?php echo get_custom_header()->height; ?>" alt="" /></a>
<?php endif; ?>
</header><!-- #masthead -->
<div id="main" class="wrapper">
Unde este acest Meniu Principal sau cum este definit în temă?
Mulțumesc
Andrea

Locațiile meniurilor sunt definite în fișierul functions.php
Puteți citi codex-ul pentru mai multe informații despre cum să definiți locațiile meniurilor în functions.php
Înregistrarea Meniurilor
În primul rând, în fișierul functions.php al temei, trebuie să scrieți o funcție pentru a înregistra numele meniurilor. (Așa vor apărea în ecranul de administrare Aspect -> Meniuri.) De exemplu, acest meniu va apărea în caseta "Locații Temă" ca "Meniul Header".
function register_my_menu() {
register_nav_menu('header-menu',__( 'Meniul Header' ));
}
add_action( 'init', 'register_my_menu' );
Iar acest cod va face să apară două opțiuni de meniu, meniul header și meniul suplimentar -
function register_my_menus() {
register_nav_menus(
array(
'header-menu' => __( 'Meniul Header' ),
'extra-menu' => __( 'Meniul Suplimentar' )
)
);
}
add_action( 'init', 'register_my_menus' );
Afisarea Meniurilor în Temă
După ce ați făcut asta, tema va fi aproape gata. Ultimul pas de pregătire este să specificați temei unde doriți să apară meniurile. Faceți acest lucru în fișierul temei relevant. De exemplu, poate doriți ca meniul header să fie în header.php. Deschideți acest fișier în editorul de teme și decideți unde doriți să plasați meniul. Codul de utilizat aici este wp_nav_menu, de care vom avea nevoie o dată pentru fiecare locație de meniu. Deci, adăugați acest cod -
<?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?>
Tot ce trebuie să vă asigurați este că theme_location indică spre numele pe care l-ați furnizat pentru meniul dvs. în codul functions.php de mai sus. (Rețineți că aici se folosește header-menu și nu Meniul Header fără cratimă. header-menu este numele pe care codul îl înțelege, iar Meniul Header este versiunea ușor de înțeles de utilizator care apare în pagina de administrare.)
Pentru a completa codul, puteți plasa meniul suplimentar în altă parte. Poate doriți un meniu pe una dintre pagini, de exemplu, și poate doriți chiar să-l îmbunătățiți puțin cu un DIV container de o anumită clasă -
wp_nav_menu( array( 'theme_location' => 'extra-menu', 'container_class' => 'my_extra_menu_class' ) );
Deci, ați pune codul de mai sus în șablonul Paginii, iar meniul nu numai că va apărea acolo unde l-ați plasat, dar va fi și stilizat cu clasa my_extra_menu_class, astfel încât să puteți lucra cu ea în CSS.

De asemenea, poți adăuga un meniu suplimentar din fișierul functions.php al temei copil fără a modifica fișierele temei părinte.
add_action( 'wp_head', 'add_extra_nav' );
function add_extra_nav() {
wp_nav_menu( array(
'theme_location' => 'extra-menu',
'container_class' => 'nav-menu' ) );
}
Pur și simplu schimbă clasa containerului la aceeași folosită de tema ta și înfășoară funcția într-o clasă existentă pe care tema o folosește pentru un meniu principal sau secundar, astfel încât să nu fie nevoie să adaugi CSS suplimentar. De obicei, această clasă poate fi găsită în header.php.
Poți schimba hook-ul wp_head cu orice alt hook specific WordPress sau temei.
