где определяется расположение темы для главного меню в шаблоне wordpress?

<p>расположение меню определяется в functions.php</p><p>вы можете прочитать <a href="http://codex.wordpress.org/navigation\_menus">кодекс</a> для получения дополнительной информации о том, как определить расположение меню в functions.php</p><p><strong> регистрация меню </strong></p><p>во-первых, в файле functions.php вашей темы вам необходимо написать функцию для регистрации имен ваших меню. (вот как они будут отображаться на экране "внешний вид -> меню администратора".) например, это меню будет отображаться в поле "расположение тем" как "меню заголовка".</p><pre><code>function register\_my\_menu() { register\_nav\_menu('header-menu',\_\_( 'header menu' )); } add\_action( 'init', 'register\_my\_menu' ); </code></pre><p>и это приведет к появлению двух опций меню, меню заголовка и дополнительного меню -</p><pre><code>function register\_my\_menus() { register\_nav\_menus( array( 'header-menu' => \_\_( 'header menu' ), 'extra-menu' => \_\_( 'extra menu' ) ) ); } add\_action( 'init', 'register\_my\_menus' ); </code></pre><p><strong> показать меню на тему </strong></p><p>как только вы это сделаете, ваша тема будет почти готова. последний шаг подготовки - сообщить теме, где вы хотите, чтобы меню отображались. вы делаете это в соответствующем файле темы. так, например, мы могли бы хотеть, чтобы наше меню заголовка было в header.php. так что откройте этот файл в редакторе тем и решите, куда вы хотите поместить свое меню. здесь используется код wp\_nav\_menu, который нам понадобится один раз для каждого места в меню. итак, добавьте этот код -</p><pre><code><?php wp\_nav\_menu( array( 'theme\_location' => 'header-menu' ) ); ?> </code></pre><p>все, что вам нужно, это убедиться, что theme\_location указывает на имя, которое вы указали для своего меню в коде functions.php выше. (обратите внимание, что здесь используется меню заголовка, а не меню заголовка без дефиса. заголовок меню - это имя, которое понимает код, меню заголовка - это удобочитаемая версия, которую вы видите на странице администратора.)</p><p>чтобы завершить код, вы можете поместить ваше дополнительное меню в другом месте. может быть, вы хотите меню на одной из ваших страниц, например, и вы могли бы даже хотеть, чтобы оно было немного озадачено содержащим div определенного класса -</p><pre><code>wp\_nav\_menu( array( 'theme\_location' => 'extra-menu', 'container\_class' => 'my\_extra\_menu\_class' ) ); </code></pre><p>таким образом, вы поместите вышеперечисленное в шаблон страницы, и меню будет отображаться не только там, где вы его поместите, оно будет стилизовано как my\_extra\_menu\_class, чтобы вы могли работать с этим в css.</p>

<p>вы также можете подключить дополнительное меню из вашего дочернего файла functions.php без изменения каких-либо файлов родительских тем.</p><pre><code>add\_action( 'wp\_head', 'add\_extra\_nav' ); function add\_extra\_nav() { wp\_nav\_menu( array( 'theme\_location' => 'extra-menu', 'container\_class' => 'nav-menu' ) ); } </code></pre><p>просто измените класс контейнера на тот, который используется в вашей теме, и оберните функцию в существующий класс, который ваша тема использует для основного или дополнительного меню, чтобы вам не нужно было добавлять css. обычно вы можете найти это в header.php.</p><p>измените хук wp\_head на любой другой хук для wordpress или темы.</p>