Добавляем кастомное меню WordPress 3.0

Как я и обещал недавно пишу пост про добавление нового меню в старые шаблоны WordPress. Хотел написать еще в понедельник, но у меня потек аквариум, так что последние дни прошли в хлопотах.

Новое меню WordPress обладает без преувеличения уникальными возможностями. Вы можете не просто выводить категории или страницы или определенную категорию. Новая менюшка может состоять из чего угодно. Ссылки, категория, страницы - все это может содержаться в одном меню в нужном вам порядке.

Итак вы решили, что эта фича именно то, что для счастья нужно, но старый шаблон к этому не готов. Я буду показывать на конкретном примере. Для начала нам нужно прописать в function.php (если этого файла в папке с шаблоном нет - создайте его) следующий код:

1
register_nav_menus(php array('primary'=>__('Меню'),)); //любое название меню

Теперь ищем код, отвечающий за вывод меню в вашем шаблоне. Допустим вот такой:

1
2
3
<ul>
< ?php wp_list_pages('title_li='); ?>
</ul>

и заменяем его на вот такой:

1
< ?php wp_nav_menu( array( 'theme_location' => 'primary','container'       => '', 'fallback_cb'     => '',) ); ?>

Все! Немного расскажу о параметрах. Дефолтные настройки выглядят так:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
< ?php $defaults = array(
'menu'            => ,
'container'       => 'div',
'container_class' => ,
'container_id'    => ,
'menu_class'      => 'menu',
'menu_id'         => ,
'echo'            => true,
'fallback_cb'     => 'wp_page_menu',
'before'          => ,
'after'           => ,
'link_before'     => ,
'link_after'      => ,
'depth'           => 0,
'walker'          => ,
'theme_location'  => );
?>

Большая часть понятна и так, поэтому остановлюсь только на некоторых. По умолчанию вся менюшка запихивается в отдельный DIV

1
2
<div class="menu-top_menu-container">
</div>

Если этого не учесть, то поползет верстка. Прописываем 'container' => '' и никаких дивов выводится не будет.

1
'fallback_cb' => 'wp_page_menu'

Это имя функции, которая будет выводится если вы не создали кастомное меню. По умолчанию это список страниц.

1
2
'before' =>''
'after'   => ''

Текст перед и после тега соответственно. По умолчанию пусто.

1
2
'link_before'  => ''
'link_after'    => ''

Текст  перед и после текста ссылки соответственно. По умолчанию пусто.

1
'depth' => '0'

Количество уровней иерархии или проще говоря подменю.

1
'theme_location'  =>''

Место в теме, где будет выводится меню. Пригодится если вы хотите использовать несколько кастомных менюшек в разных местах шаблона. Не забудьте дополнительные меню указать в function.php

В общем ничего сложного нет. На бложек пока не ставил, так как жду перевод от Лекактуса и сижу на старой версии icon smile Добавляем кастомное меню Wordpress 3.0 Пишите в каментах интересные для вас темы - напишу) И еще - подскажите плиз плагины для вставки кода в текст статьи, чтобы была интеграция в визуальный редактор и для установки плагина не требовалось лишних телодвижений)) А то я запарился везде теги вставлять.


Еще по теме

Поделиться постом
Поделиться ВКонтакте Добавить в свой блог на livejournal.com
8 комментариев на “Добавляем кастомное меню WordPress 3.0”
  1. пишет:

    что еще за кастомное меню? скрин бы хоть выложили

  2. пишет:

    Да, я тоже не понял про “кастомное меню”, это как вообще?

  3. пишет:

    Напиши еще про фишки wp3, какие знаешь.

  4. Санёк пишет:

    Добавил видео 8)

  5. Ден пишет:

    Я тоже добавил видео!

  6. пишет:

    Вещь вообщем-то полезная. Тоже хочу ее на свой блог прикрутить!

  7. пишет:

    Спасибо! Никак не могу заставить себя перейти на 3.0 на всех проектах :( Кстати в 3.0 еще можно создавать отдельные подблоги для пользователей сайта, об этом интересно было бы послушать, а то я не вникал.

Написать ответ


4d029bd4