Добавление класса Bootstrap dropdown в навигационное меню

26 июл. 2017 г., 14:13:22
Просмотры: 15.5K
Голосов: 2

Как создать такое меню в WordPress

<div class="collapse navbar-collapse" id="collapse-1">
                <ul class="nav navbar-nav">
                    <li><a href="#">наша история</a></li>
                    <li><a href="#">наше видение</a></li>
                    <li class="dropdown">
                        <a href="#">История</a>
                        <ul class="dropdown-menu">
                            <li><a href="#">История 1</a></li>
                            <li><a href="#">История 2</a></li>
                            <li><a href="#">История 3</a></li>

                        </ul>
                    </li>

                </ul>
            </div>

Код для WordPress:

<div class="collapse navbar-collapse" id="collapse-1">

<?php
wp_nav_menu( array(
    'theme_location' => 'header',
    'menu_class' => 'nav navbar-nav',
    'fallback_cb' => false
) );
?>

</div>
4
Комментарии

Какой у тебя код для построения навигационного меню без класса dropdown?

Max Yudin Max Yudin
26 июл. 2017 г. 14:15:30

Перейди по этой ссылке, и ты поймешь идею. https://codex.wordpress.org/WordPress_Menu_User_Guide

TMA TMA
26 июл. 2017 г. 14:16:11

<div class="collapse navbar-collapse" id="collapse-1">

   <?php wp_nav_menu( array( 'theme_location' => 'header', 'menu_class' => 'nav navbar-nav', 'fallback_cb' => false ) ); ?>

            </div>
sevoug sevoug
26 июл. 2017 г. 14:16:52

Для Bootstrap 5: https://github.com/AlexWebLab/bootstrap-5-wordpress-navbar-walker

Lars Flieger Lars Flieger
26 мая 2021 г. 14:21:36
Все ответы на вопрос 3
2

Самый простой способ сделать это — использовать готовое решение. Класс WP_Bootstrap_Navwalker расширяет нативный класс WordPress Walker_Nav_Menu и адаптирует ваши меню для работы с Bootstrap 3 или 4. Скачайте его с GitHub.

Добавьте его в свою тему, затем добавьте следующий код в файл functions.php:

<?php
require_once('путь-к-папке/wp-bootstrap-navwalker.php');

Замените путь-к-папке/ на актуальный путь в вашем проекте.

Затем измените вызов wp_nav_menu(), используя следующий код:

<?php
wp_nav_menu( array(
    'menu'              => 'header', // укажите название вашего меню
    'theme_location'    => 'header',
    'container'         => 'div', // нет необходимости оборачивать `wp_nav_menu` вручную
    'container_class'   => 'collapse navbar-collapse',
    'container_id'      => 'collapse-1',
    'menu_class'        => 'nav navbar-nav',
    'fallback_cb'       => false,
    'walker'            => new WP_Bootstrap_Navwalker() // Используем другой Walker
));

Обратите внимание, что вам больше не нужен <div class="collapse navbar-collapse" id="collapse-1">, так как он будет добавлен автоматически функцией wp_nav_menu() с правильными CSS-классами и id.

Также внимательно ознакомьтесь с файлом README.md WP_Bootstrap_Navwalker.

26 июл. 2017 г. 14:42:03
Комментарии

Вы знаете, работает ли Navwalker с Bootstrap 5?

Lars Flieger Lars Flieger
25 мая 2021 г. 12:17:25

@Lars Не стесняйся. Google — твой друг. 1, 2 и так далее.

Max Yudin Max Yudin
27 мая 2021 г. 10:04:29
0

Самое простое решение в данном случае — использовать jQuery. Вы можете добавить новый класс в файл functions.php, чтобы проверить, есть ли у пункта меню дочерние элементы, а затем добавить атрибуты к этому элементу, или же использовать Bootstrap Nav Walker. Здесь я выберу более простой вариант.


    $(document).ready(function(){
        $("ul.sub-menu").parent().addClass("dropdown");
        $("ul.sub-menu").addClass("dropdown-menu");
        $("ul#menuid li.dropdown a").addClass("dropdown-toggle");
        $("ul.sub-menu li a").removeClass("dropdown-toggle"); 
        $('.navbar .dropdown-toggle').append('');
        $('a.dropdown-toggle').attr('data-toggle', 'dropdown');
    });

Просто скопируйте этот код и вставьте его в файл footer.php. Для более подробной информации посетите http://webtrickshome.com/faq/how-to-add-bootstrap-dropdown-class-in-wordpress-menu-item

1 июн. 2018 г. 17:00:30
0

Вы можете использовать класс Walker_Nav_Menu, если хотите изменить стандартную разметку меню в WordPress.

https://codex.wordpress.org/Class_Reference/Walker

https://www.youtube.com/watch?v=IqTMhmjTBoE&list=PLriKzYyLb28kpEnFFi9_vJWPf5-_7d3rX&index=19

26 июл. 2017 г. 14:38:32