Добавляем плавающее меню в WordPress

9[1]

Вы наверняка видели ее на сайтах других людей и хотите знать как заполучить ее и себе? Прокручиваемое меню навигации очень легко сделать и в WordPress. Помогите вашим пользователям, позвольте им пользоваться меню с любой области страницы. И вот как это делается…

Шаг 1: Добавляем новую область меню в functions.php

Первым делом вам нужно существующее меню, чтобы отображать его на странице. Давайте создадим новое под названием ‘topnavigation‘. Вот самый простой код установки этого меню в вашем файле functions.php:

register_nav_menus( array(
    'topnavigation' => __( 'Top Navigation', 'ЗДЕСЬ НАЗВАНИЕ ВАШЕЙ ТЕМЫ' )
) );

Если же у вас уже есть функция register_nav_menus, добавьте в нее строку меню ‘topnavigation‘.

Шаг 2: Заполняем наше меню

Переходим в админку сайта, открываем вкладку Меню. Создаем новое меню и назначим его той области, которую мы только что назвали ‘Top Navigation’. Затем накидываем в это меню страницы. Достаточно будет четырех, например Главная, Магазин, События, Блок.\

2[1]

Шаг 3: Вызываем меню

Необходимо вызвать ваше меню вверху body в файле header.php. Важно обернуть это меню в div на ваш выбор. Мы выбрали div под названием topnavigation. Нам он понадобится чуть позже. Это самый простой способ реализации.

Используем следующий код в header.php:

<div id="topnavigation">
    <?php wp_nav_menu( array( 'theme_location' => 'topnavigation' ) ); ?>
</div>

В итоге должно получиться что-то, выглядящее похожим на скриншот:

4[1]

Конечно, ваша тема будет отличаться.

Шаг 4: Давайте оформим меню в style.css

Теперь мы можем приступить к визуальному оформлению. Чтобы мы видели, что мы делаем, давайте начнем с добавления небольшого кода CSS и зададим фоновый цвет, а также зададим 100% ширины, чтобы меню не смотрелось «странно».

Используем следующий код в style.css или в том файле, где у вас основная таблица стилей:

#topnavigation {
    width: 100%;
    background-color: #999;
}

Обновите страницу и увидите:

5[1]

Шаг 5: Размещаем меню по центру

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

<div id="topnavigation">
    <nav><?php wp_nav_menu( array( 'theme_location' => 'topnavigation' ) ); ?></nav>
</div>

Затем нужно оформить наш новый nav стилями. Можно сделать так:

#topnavigation nav {
    width: 940px; //ширина вашего контейнера div может отличаться
    margin: 0 auto;
}

#topnavigation li {
    display: inline;
    padding: 10px;
    margin: 20px 0;
}

Эти два действия вместе приведут к следующему виду наше меню:

7[1]

Шаг 6: Фиксируем меню для прокручивания за страницей

И, наконец, делаем его прокручиваемым. Лучшим способом будет фиксация вверху окна, а затем наложение его над всеми элементами страницы.

Обновите ваш стиль #topnavigation следующим образом:

#topnavigation {
    width: 100%;
    background-color: #999;
    position: fixed; // Пристыковываем его к верхней части окна
    z-index: 1; //Делаем его отображаемым поверх всех элементов
    height: 50px; //Назначает точку отсчета отображения
}

Однако если вы перезагрузите окно, то заметите, что из-за того, что меню плавает, оно перекрывает весь остальной контент под собой

8[1]

Для решения этой проблемы добавляем отступ от верха контейнера div со всеми элементами внутри. В нашем шаблоне этот div называется #page. Поэтому мы добавим следующее в наш файл CSS:

#page {
    padding-top: 60px; //Высота нашего div topnavigation плюс немного дополнительного отступа для визуальной эстетики

}

Вот что получится в итоге:

9[1]

Можете настраивать код в CSS под свои нужды и эстетические предпочтения.

Надеемся, что эта статья помогла вам создать плавающее «следящее» меню в WordPress.

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

VN:F [1.9.22_1171]
Rating: 4.5/5 (6 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top