Añadir clase dropdown de Bootstrap a un menú de navegación
Cómo construir este menú en WordPress
<div class="collapse navbar-collapse" id="collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">nuestra historia</a></li>
<li><a href="#">nuestra visión</a></li>
<li class="dropdown">
<a href="#">Historia</a>
<ul class="dropdown-menu">
<li><a href="#">Historia 1</a></li>
<li><a href="#">Historia 2</a></li>
<li><a href="#">Historia 3</a></li>
</ul>
</li>
</ul>
</div>
Código de 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>

La forma más fácil de hacer esto es usar una solución lista para usar. Existe la clase WP_Bootstrap_Navwalker que extiende la clase nativa Walker_Nav_Menu de WordPress y prepara tus menús de navegación para Bootstrap 3 o 4. Descárgala desde GitHub.
Añádela a tu tema y luego agrega lo siguiente al archivo functions.php
:
<?php
require_once('ruta-al-directorio/wp-bootstrap-navwalker.php');
Cambia ruta-al-directorio/
según tus necesidades.
A continuación, modifica tu wp_nav_menu()
con el siguiente código:
<?php
wp_nav_menu( array(
'menu' => 'header', // ajusta el nombre al tuyo
'theme_location' => 'header',
'container' => 'div', // no es necesario envolver `wp_nav_menu` manualmente
'container_class' => 'collapse navbar-collapse',
'container_id' => 'collapse-1',
'menu_class' => 'nav navbar-nav',
'fallback_cb' => false,
'walker' => new WP_Bootstrap_Navwalker() // Usa un Walker diferente
));
Ten en cuenta que ya no necesitas el <div class="collapse navbar-collapse" id="collapse-1">
ya que será agregado por wp_nav_menu()
con las clases CSS y el id
adecuados.
Además, lee detenidamente el archivo README.md de WP_Bootstrap_Navwalker.

La solución más sencilla sería usar jQuery en este caso. Puedes agregar una nueva clase en tu archivo functions.php para verificar si el elemento del menú tiene hijos y luego agregar atributos a ese elemento o también puedes usar el bootstrap nav walker. Aquí voy a optar por la opción más fácil.
$(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');
});
Solo copia y pega esto en tu footer.php. Para más detalles http://webtrickshome.com/faq/how-to-add-bootstrap-dropdown-class-in-wordpress-menu-item

Puedes usar la clase Walker_Nav_Menu si quieres modificar el marcado predeterminado del menú de WordPress.
https://codex.wordpress.org/Class_Reference/Walker
https://www.youtube.com/watch?v=IqTMhmjTBoE&list=PLriKzYyLb28kpEnFFi9_vJWPf5-_7d3rX&index=19
