Skip to content

Instantly share code, notes, and snippets.

@marcosnakamine
Created August 17, 2017 18:19
Show Gist options
  • Save marcosnakamine/1fc2654f6ff1ce1245055b6d8fe0a8e6 to your computer and use it in GitHub Desktop.
Save marcosnakamine/1fc2654f6ff1ce1245055b6d8fe0a8e6 to your computer and use it in GitHub Desktop.
WordPress - Menu with Bootstrap 4 Navbar
<?php
$menu_items = wp_get_nav_menu_items('Menu Principal'); // PEGA TODOS OS ITENS DO Menu Principal
$menu_mobile = array();
foreach ( $menu_items as $key => $value ) { // SEPARA OS ITENS EM SUBMENUS
if ( !is_array( $menu_mobile[$value->menu_item_parent] ) ) {
$menu_mobile[$value->menu_item_parent] = array();
}
array_push( $menu_mobile[$value->menu_item_parent], $value );
}
?>
<nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top">
<a class="navbar-brand" href="<?php echo home_url() ?>" class="logo">Logo</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<?php foreach ( $menu_mobile[0] as $key => $value ): ?>
<li class="nav-item">
<a class="nav-link" href="<?php echo $value->url ?>"><?php echo $value->title ?></a>
<?php // PRIMEIRO NÍVEL DE SUBMENU ?>
<?php if ( count( $menu_mobile[ $value->ID ] ) > 0 ): ?>
<ul class="navbar-nav">
<?php foreach ( $menu_mobile[ $value->ID ] as $key2 => $value2 ): ?>
<li class="nav-item">
<a class="nav-link" href="<?php echo $value2->url ?>"><?php echo $value2->title ?></a>
<?php // SEGUNDO NÍVEL DE SUBMENU ?>
<?php if ( count( $menu_mobile[ $value->ID ] ) > 0 ): ?>
<ul class="navbar-nav">
<?php foreach ( $menu_mobile[ $value->ID ] as $key2 => $value2 ): ?>
<li class="nav-item"><a class="nav-link" href="<?php echo $value2->url ?>"><?php echo $value2->title ?></a></li>
<?php endforeach ?>
</ul>
<?php endif ?>
<?php // SEGUNDO NÍVEL DE SUBMENU ?>
</li>
<?php endforeach ?>
</ul>
<?php endif ?>
<?php // PRIMEIRO NÍVEL DE SUBMENU ?>
</li>
<?php endforeach ?>
</ul>
</div>
</nav>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment