Cum să adaugi clasa dropdown Bootstrap la un meniu de navigare în WordPress
Cum să construiești acest meniu în WordPress
<div class="collapse navbar-collapse" id="collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">povestea noastră</a></li>
<li><a href="#">viziunea noastră</a></li>
<li class="dropdown">
<a href="#">Istorie</a>
<ul class="dropdown-menu">
<li><a href="#">Istorie 1</a></li>
<li><a href="#">Istorie 2</a></li>
<li><a href="#">Istorie 3</a></li>
</ul>
</li>
</ul>
</div>
Cod 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>
Cea mai ușoară metodă de a face acest lucru este să folosești o soluție gata pregătită. Există o clasă WP_Bootstrap_Navwalker care extinde clasa nativă Walker_Nav_Menu din WordPress și pregătește meniurile de navigare pentru Bootstrap 3 sau 4. Descarcă-o de pe GitHub.
Adaug-o în tema ta, apoi adaugă următoarele în functions.php:
<?php
require_once('calea-catre-director/wp-bootstrap-navwalker.php');
Schimbă calea-catre-director/ pentru a se potrivi nevoilor tale.
Apoi, modifică funcția wp_nav_menu() cu următorul cod:
<?php
wp_nav_menu( array(
'menu' => 'header', // potrivește numele cu al tău
'theme_location' => 'header',
'container' => 'div', // nu este nevoie să înfășori manual `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() // Folosește un Walker diferit
));
Reține că nu mai ai nevoie de <div class="collapse navbar-collapse" id="collapse-1"> deoarece acesta va fi adăugat automat de wp_nav_menu() cu clasele CSS și id-ul corespunzătoare.
De asemenea, citește cu atenție fișierul README.md al WP_Bootstrap_Navwalker.
Cea mai ușoară soluție ar fi să folosești jQuery în acest caz. Poți adăuga o nouă clasă în fișierul tău functions.php pentru a verifica dacă elementul din meniu are copii și apoi să adaugi atribute acelui element sau poți folosi și bootstrap nav walker. Aici voi merge pe varianta mai simplă.
$(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');
});
Doar copiază-l și lipește-l în fișierul tău footer.php. Pentru mai multe detalii http://webtrickshome.com/faq/how-to-add-bootstrap-dropdown-class-in-wordpress-menu-item
poți folosi clasa Walker_Nav_Menu dacă dorești să modifici structura implicită a meniului WordPress.
https://codex.wordpress.org/Class_Reference/Walker
https://www.youtube.com/watch?v=IqTMhmjTBoE&list=PLriKzYyLb28kpEnFFi9_vJWPf5-_7d3rX&index=19