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
