2016-10-11 80 views
2

我正在導航欄中使用nav_walker製作一個動態的WordPress鏈接。我如何能實現中心這樣的事情在WordPress nav_walker:帶中心徽標的兩部分引導菜單導航菜單

+-----------------------------+-----------+------------------------------+ 
+---------------HOME--ABOUT---|-LOGO HERE-|---CONTACT--PROFILE-----------+ 
+-----------------------------+-----------+------------------------------+ 

我怎樣才能做到這一點或某事提供我來的jsfiddle了那請。 它是兩個nav_walker功能的左右導航?我如何將導航欄品牌插入中心?任何人都可以給我結構。謝謝。

我的代碼:

<nav class="navbar navbar-inverse navbar-fixed-top"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
     </button> 
    </div> 

    <div class="navbar-brand navbar-center"> 

    </div> 

    <?php wp_nav_menu(array(
     'menu'   => 'primary-1', 
     'theme_location' => 'primary-1', 
     'depth'   => 2, 
     'container'  => 'div', 
     'container_class' => 'collapse navbar-collapse navbar-center', 
     'container_id'  => 'bs-example-navbar-collapse-1', 
     'menu_class'  => 'nav navbar-nav', 
     'fallback_cb'  => 'wp_bootstrap_navwalker::fallback', 
     'walker'   => new wp_bootstrap_navwalker() 
     )); 
    ?> 
</nav> 
+0

你到目前爲止嘗試過什麼嗎? –

+0

@Nikhil Nanjappa是的先生。我試過兩個div,但失敗了。我做了兩次導航。它不會滿足我想要的。 :(請幫助我先生。謝謝你的回答 –

+0

我猜你在問如何從你的菜單項獲取wordpress菜單並將它們分開。請看看[this](https:// developer。 wordpress.org/reference/functions/wp_get_nav_menu_items/) –

回答

4

它可以通過,如果你有左,右的項目相同數量驚人地簡單。只需創建一個列表,將徽標放在中間並執行text-align: center。請看這裏:https://jsfiddle.net/DTcHh/26132/

當左邊和右邊甚至有點不平衡時,麻煩就開始了。我建議創建兩個列表,每個列表半個屏幕。他們將朝着中心對齊,並在標誌的中心留出空間。

看看這裏:https://jsfiddle.net/DTcHh/26133/

HTML:

<div class="navbar navbar-default"> 
    <div class="logo-wrapper"> 
     <div class="logo"><img class="logo" src="http://www.hsdtaxlaw.com/wp-content/uploads/2016/05/logo_placeholder.png" alt=""></div> 
    </div> 
    <div class="half">  
     <ul class="left-navlist"> 
      <li>Home</li> 
      <li>About</li> 
     </ul> 
    </div> 
    <div class="half">  
     <ul class="right-navlist"> 
      <li>Contact</li> 
      <li>Profile</li> 
      <li>Maps</li> 
     </ul> 
    </div> 
</div> 

CSS:

.logo-wrapper { 
    text-align: center; 
    margin-bottom: -37px; 
} 

.logo { 
    width: 100px; 
    display: inline-block; 
} 

.navbar li { 
    display: inline-block; 
    padding: 0 10px 10px; 
} 

.half { 
    width: 50%; 
    display: block; 
    float: left; 
} 

.right-navlist { 
    padding-left: 60px; 
} 

.left-navlist { 
    text-align: right; 
    padding-right: 60px; 
} 

至於如何與WordPress實現這一點,我相信你將不得不擺脫navwalker插件。只需在wordpress中創建兩個菜單:left-primaryright-primary。然後用wp_get_nav_menu_items('left-primary')迭代它們並按照我的建議構建菜單。這裏是沒有nav-walker的php代碼:

<div class="navbar navbar-default"> 
    <div class="logo-wrapper"> 
     <div class="logo"><img class="logo" src="http://www.hsdtaxlaw.com/wp-content/uploads/2016/05/logo_placeholder.png" alt=""></div> 
    </div> 
    <div class="half">  
     <ul class="left-navlist"> 
      <? 
       $menu = wp_get_nav_menu_items('left-primary'); 
       foreach ($menu as $menu_item) { 
        $title = $menu_item->title; 
        $link = $menu_item->url; 
        ?> 
         <li href="<?=$link?>"><?=$title?></li> 
        <? 
       ? 
      ?> 
     </ul> 
    </div> 
    <div class="half">  
     <ul class="right-navlist"> 
      <? 
       $menu = wp_get_nav_menu_items('right-primary'); 
       foreach ($menu as $menu_item) { 
        $title = $menu_item->title; 
        $link = $menu_item->url; 
        ?> 
         <li href="<?=$link?>"><?=$title?></li> 
        <? 
       ? 
      ?> 
     </ul> 
    </div> 
</div> 
+0

非常感謝您的支持回答先生。我編輯我的帖子,並以某種方式..我想知道如何劃分我的navwalker,因爲我使用的是wordpress。 –

+0

我覺得這應該被接受爲答案,因爲它確實是OP所要求的。 –

+0

@JcJohn我在沒有navwalker的情況下添加了php代碼。所有你需要做的是在wordpress中添加兩個菜單:http://www.wpbeginner.com/beginners-guide/how-to-add-navigation-menu-in-wordpress-beginners-guide/ –

0

好的嘗試使用下面的標記來實現你在找什麼,你還需要調整一點點CSS的覆蓋引導的默認樣式。

HTML

<nav class="navbar navbar-default navbar-fixed-top"> 
    <div class="container"> 
    <div id="navbar" class="navbar-collapse collapse"> 
     <ul class="nav navbar-nav"> 
     <li class="active"><a href="#">Home</a></li> 
     <li><a href="#about">About</a></li> 
     <a class="navbar-brand">Your logo</a> 
     <li><a href="../navbar/">Contact</a></li> 
     <li><a href="../navbar/">Profile</a></li> 
     </ul> 
    </div><!--/.nav-collapse --> 
    </div> 
</nav> 

CSS它實現你想要的(確保這將覆蓋缺省引導樣式)什麼

.navbar-nav { 
    float: none; 
    margin: auto; 
    max-width: 40%; //adjust to your requirements 
} 

Codepen here

+0

如何將navwalker分成兩個分割的先生..謝謝你的回答 –

+0

你能告訴我你的意思是分成兩個嗎?[請檢查這個codepen](http://codepen.io/PleaseBugMeNot/pen/LRmxrA) –

+0

我的意思是動態navwalker wordpress fu導航導航動態添加頁面。我怎麼能使它自動分爲兩個,在他們的中心是標誌先生 –

0

前一段時間我尋找完全相同的東西,並遇到這支筆。 道具到Bryan Willis

Bootstrap 3 Headers看最後一個例子!

HTML

<div class="container"> 
<nav class="navbar navbar-default"> 
<div class="container-fluid"> 
    <div class="navbar-header"> 
    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar9"> 
     <span class="sr-only">Toggle navigation</span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
    </button> 
    </div> 

    <div class="brand-centered"> 
    <a class="navbar-brand" href="http://disputebills.com"><img style="margin-right: 10px; padding: 0;" src="http://res.cloudinary.com/disputebills/image/upload/v1462474206/blue-mark_cnzgry.png" alt="Dispute Bills">Dispute Bills 
    </a> 
    </div> 

    <div id="navbar9" class="navbar-collapse collapse"> 
    <ul class="nav navbar-nav navbar-left"> 
     <li class="active"><a href="#">Home</a></li> 
     <li><a href="#">About</a></li> 
    </ul> 
    <ul class="nav navbar-nav navbar-right"> 
     <li class="active"><a href="#">Home</a></li> 
     <li><a href="#">About</a></li> 
    </ul> 
    </div> 
    <!--/.nav-collapse --> 
</div> 
<!--/.container-fluid --> 

CSS

.navbar-brand { 
    padding: 0px; 
} 
.navbar-brand>img { 
    height: 100%; 
    padding: 15px; 
    width: auto; 
} 
/* EXAMPLE 9 - Center with Flexbox and Text*/ 
.brand-centered { 
    display: flex; 
    justify-content: center; 
    position: absolute; 
    width: 100%; 
    left: 0; 
    top: 0; 
} 
.brand-centered .navbar-brand { 
    display: flex; 
    align-items: center; 
}