Главная -> WordPress -> Вывод меню первого и второго уровня в WordPress

Вывод меню первого и второго уровня в WordPress

Помимо дизайна сайтов я также занимаюсь и разработкой шаблонов для WordPress на заказ. Естественно каждый раз узнаю (или стараюсь узнать) что-то новое. И теперь вы сможете развиваться вместе со мной, т.к. каждый созданный шаблон будет освещаться (ну может, конечно, не каждый, а только тот, который может быть интересен). Вы узнаете что и как было реализовано.

Прежде, чем мы начнем, мой первый совет вам: прежде чем приступать к интеграции шаблона, продумайте логику вывода информации.

Начнем с шаблона для сайта Эффективные уроки, посвященному изучению иностранных языков:

С виду обычный сайт визитка на трех языках с одинаковыми пунктами меню для каждого раздела. Естественно меню должно формироваться и выводиться автоматически, а не быть зашитым в шаблон намертво для каждого из трех языков.

Сайт у нас имеет двухуровневую структуру, разделы которой выводятся в разных частях макета:

  • Норвежский язык
    1. Пункт 1
    2. Пункт 2
    3. Пункт 3
  • Английский язык
    1. Пункт 1
    2. Пункт 2
    3. Пункт 3
  • Русский язык
    1. Пункт 1
    2. Пункт 2
    3. Пункт 3

Все страницы на сайте реализованы именно через Страницы (Pages), а не через Записи (Posts)

Для вывода первого уровня (названия языков) пишем:

где depth=1 уровень меню,
sort_column=menu_order сортировка согласно порядку, установленному в свойствах страницы (блок Аттрибуты)
title_li= говорит о том, что заголовок для данного блока не выводится.

Переходим к меню второго уровня. Оно должно выводиться автоматически и оставаться на внутренних страницах при перемещении между разделами. При этом меню у нас разбито на два блок (вверху справа и слева, в сайдбаре).

Код будет выглядеть следующим образом:
if($post->post_parent) {
wp_list_pages('sort_column=menu_order&exclude=111&title_li= &child_of='.$post->post_parent);
}
elseif(wp_list_pages("child_of=".$post->ID."&exclude=111&echo=0")) {
wp_list_pages('sort_column=menu_order&exclude=111&title_li=&child_of='.$post->ID);
}
?>

Новый параметр exclude=111 указывает на то, какую страницу надо исключить из вывода; если страниц предполагается несколько то указываем id через запятую (в нашем случае пусть это будет 111 и 222): exclude=111,222

В целом надо заметить, что WordPress вещь хорошая и очень гибкая. Существенный минус этой CMS большая нагрузка на сервер (особенно по сравнению с DLE). Так что если вы планируете строить и продвигать сайт, который в последствии будет собирать по десяткам тысяч посетителей ежедневно, то стоит задумать об аренде удалённого сервера. Вы получите полный доступ к настройкам и сможете контролировать работу проектов самостоятельно. Ну а если не разбираетесь в этом сами, то сможете заказать администрирование.

Понравилась статья? Тогда подпишитесь на RSS, чтобы следить за обновлениями!

 

Продвижение сайтов в Республике Беларусь

Компания "Виста" предлагает продвижение сайтов в Республике Беларусь - первые 3 месяца бесплатно.