Чи траплялося таке, що ви хотіли прискорити процес розробки нової теми? Думаю, бувало. І для цього ви вже використовували (або читали про використання) Bootstrap та мокапи на його основі. Як же інтегрувати компоненти цього фреймворку у WordPress-тему? Давайте вивчимо докладніше з прикладу цього уроку. Почнемо з компонента Navbar, який відповідає за створення адаптивної навігаційної панелі на сайті.
1. Код для навігаційної панелі на основі фреймворку Bootstrap
Ось вихідний код із документаційної сторінки Bootstrap:
<nav class="navbar navbar-default" role="navigation"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">Brand</a> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse navbar-ex1-collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="#">Link</a></li> <li><a href="#">Link</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li><a href="#">Separated link</a></li> <li><a href="#">One more separated link</a></li> </ul> </li> </ul> </div> </nav>
Давайте вивчимо його уважніше, щоб зрозуміти, які саме частини коду нам знадобляться у подальшій роботі.
- Обгортка - Тегnav> з класом "навігаційна панель" та рольовим параметром "навігація, служить для оформлення контенту в навігаційній панелі.
<nav role="navigation">…</nav>
- Header - ТегDIV> з класом "navbar-header", бачимо будь-яких розмірів екрана.
<div class="navbar-header">…</div>
- Кнопка перемикання - Тегbutton> для відображення згорнутого контенту на малих екранах, кнопка розкривається на кліку на ній, контент всередині цієї обов'язкової кнопки можна змінювати на свій розсуд.
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".navbar-ex1-collapse">…</button>
- Марка - Посилання на логотип, носить опціональний характер, її можна прибрати звідси і вставити там, де вам потрібен логотип.
<a class="navbar-brand" href="#">Brand</a>
- Збірний вміст - ТегDIV> з класом "крах"І"navbar-collapseмістить весь контент, який повинен йти в згорнутому вигляді на малих екранах.
<div class="collapse navbar-collapse navbar-ex1-collapse">…</div>
- Меню - Тегul> з класом "нав навбар-нав", Що представляє навігацію по сайту.
<ul class="nav navbar-nav">…</ul>
2. Інтегруємо мокап у шаблон
На цьому етапі нам треба у вже встановлений двигун WordPress додати тему, що розробляється.
2.1. Підготовка теми додавання навігаційного меню
Відкриваємо файл functions.php та реєструємо навігаційну панель, якщо досі цього не зробили:
<?php /* Theme setup */ add_action( 'after_setup_theme', 'wpt_setup' ); if ( ! function_exists( 'wpt_setup' ) ): function wpt_setup() { register_nav_menu( 'primary', __( 'Primary navigation', 'wptuts' ) ); } endif; ?>
Реєструємо файли фреймоврку та jQuery:
function wpt_register_js() { wp_register_script('jquery.bootstrap.min', get_template_directory_uri() . '/js/bootstrap.min.js', 'jquery'); wp_enqueue_script('jquery.bootstrap.min'); } add_action( 'init', 'wpt_register_js' ); function wpt_register_css() { wp_register_style( 'bootstrap.min', get_template_directory_uri() . '/css/bootstrap.min.css' ); wp_enqueue_style( 'bootstrap.min' ); } add_action( 'wp_enqueue_scripts', 'wpt_register_css' );
Завантажуємо клас wp-bootstrap-navwalker с GitHub. Поміщаємо файл до кореневої папки теми. Переходимо до файлу functions.php і додаємо наступний код:
<?php // Register custom navigation walker require_once('wp-bootstrap-navwalker.php'); ?>
2.2. Працюємо з меню
Переходимо в меню за посиланням Зовнішній вигляд → Меню. Створюємо нове меню під назвою "Первинний" і додаємо в нього нові елементи. Переходимо потім у вкладку Управління областями і призначаємо для розташуванняПервиннийменю з такою ж назвою, а потім зберігаємо всі зроблені зміни.
2.3. Інтегруємо навігаційну панель та отриманий мокап у шаблон оформлення сайту
Відкриваємо файл header.php і скопіюємо в нього навігаційну панель у форматі мокапа так, щоб вона з'явилась у бажаному розташуванні на сайті. Тепер замінюємо частини скопійованого мокапа функціями із шаблону WordPress. Для початку розміщуємо коректне посилання на логотип. Правимо наступний рядок:
<a class="navbar-brand" href="#">Brand</a>
Замінюємо її на:
<a class="navbar-brand" href="<?php bloginfo('url')?>"><?php bloginfo('name')?></a>
Далі погоджуємо виведення меню замість того, що в мокапі.
Для наступних рядків коду:
<ul class="nav navbar-nav"> <li class="active"><a href="#">Link</a></li> <li><a href="#">Link</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li><a href="#">Separated link</a></li> <li><a href="#">One more separated link</a></li> </ul> </li> </ul>
робимо заміну на:
<?php /* Primary navigation */ wp_nav_menu( array( 'menu' => 'top_menu', 'depth' => 2, 'container' => false, 'menu_class' => 'nav', //Process nav menu using our custom nav walker 'walker' => new wp_bootstrap_navwalker()) ); ?>
І ось компонент навігаційної панелі отримав свій інтегрований фреймворк.
Висновок
У цьому покроковому посібнику ми розглянули процес інтеграції навігаційної панелі на основі фреймворку Bootstrap CSS у тему оформлення на движку WordPress. Для прискорення процедур розробки власної нової теми ви можете просто завантажити вихідні файли і вставити в свою тему, а потім провести дрібні правки там, де вони необхідні.
Коментарі до запису: 13
Не працює спосіб…
Все з першого разу запрацювало) можливо просто ви десь припускаєте помилку в коді
Дякую! Все запрацювало з першого разу. Тільки потрібно ще клас додавати, щоб меню було горизонтальним 'menu_class' => 'nav navbar-nav' . Тепер потрібно мені ще скриптик додати, щоб меню випадало при наведенні.
а скриптиком цим не поділіться? (щоб меню випадало при наведенні)
Дякую, вийшло!
Все супер. Величезне спасибі.
А чи не знаєте як додати два таких меню на сайт? Одне горизонтальне вийшло спасибі. А ось друге вертикальне дублюється, а потрібно інші пункти меню прописати.
як додати роздільники з класом divider між сусідніми посиланнями за допомогою цієї штуки?
Меню саме з'явилося, все гаразд. Але! Не працює кнопка відкриття мобільного меню на смартфонах/планшетах. Не знаю, через що. У такому ж html працює, у php не хоче. Bootstrap.js, jquery підключені, дивився в панелі інструментів. Ніхто не стикався?
Довго не міг зрозуміти, у чому проблема.
Виявляє банально у рядку: require_once('wp_bootstrap_navwalker.php');
треба вказати тире, а не нижнє підкреслення
Та сама фігня спливла.
Автор виправи!
Стаття дуже корисна виявилася, автору респект!))
Виправлено! Дякую.
Шукаю інфу вже два дні і нічого не виходило. Ця стаття допомогла, дякую!