Tích Hợp NavBar Bootstrap Vào WordPress Menu

Tích Hợp NavBar Bootstrap Vào WordPress Menu

Twitter Bootstrap là 1 Frontend Framework đang được sử dụng rất rộng rãi bởi tính tiện dụng, dễ sử dụng, thiết kế đẹp của nó. Chính vì vậy, việc tích hợp Bootstrap vào Theme WordPress được nhiều Developer thực hiện. Nhưng trong quá trình thực hiện bạn sẽ gặp 1 số vấn đề liên quan đến cấu trúc HTML của Bootstrap điển hình là việc tích hợp NavBar Bootstrap vào WordPress Menu.

Không có gì đáng nói việc tích hợp NavBar vào WordPress Menu khi menu của bạn chỉ là 1 cấp. Nhưng nếu menu của bạn là menu đa cấp thì nó sẽ bị lỗi vì cấu trúc HTML của Navbar Bootstrap khác cấu trúc HTML Menu của WordPress.

Tích hợp navbar bootstrap vào wordpress menu

Trong bài viết này, tôi sẽ hướng dẫn các bạn tích hợp Navbar Bootstrap vào WordPress Menu sử dụng class wp bootstrap navwalker

Cấu trúc HTML của Navbar Bootstrap

Đầu tiên, chúng ta cùng nghiên cứu cấu trúc HTML của Navbar Bootstrap

<nav class="navbar navbar-default" role="navigation"> 
<!-- Brand and toggle get grouped for better mobile display --> 
  <div class="navbar-header"> 
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
    </button> 
    <a class="navbar-brand" href="#">Brand</a> 
  </div> 
  <!-- Collect the nav links, forms, and other content for toggling --> 
  <div class="collapse navbar-collapse navbar-ex1-collapse"> 
    <ul class="nav navbar-nav"> 
      <li class="active"><a href="#">Link</a></li> 
      <li><a href="#">Link</a></li> 
      <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a> 
        <ul class="dropdown-menu"> 
          <li><a href="#">Action</a></li> 
          <li><a href="#">Another action</a></li> 
          <li><a href="#">Something else here</a></li> 
          <li><a href="#">Separated link</a></li> 
          <li><a href="#">One more separated link</a></li> 
        </ul> 
      </li> 
    </ul>
  </div>
</nav>

Nhìn vào code trên, các bạn chỉ cần quan tâm đến đoạn code sau để tích hợp vào WordPress Menu, còn những cái còn lại ta để nguyên:

<div class="collapse navbar-collapse navbar-ex1-collapse"> 
    <ul class="nav navbar-nav"> 
      <li class="active"><a href="#">Link</a></li> 
      <li><a href="#">Link</a></li> 
      <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a> 
        <ul class="dropdown-menu"> 
          <li><a href="#">Action</a></li> 
          <li><a href="#">Another action</a></li> 
          <li><a href="#">Something else here</a></li> 
          <li><a href="#">Separated link</a></li> 
          <li><a href="#">One more separated link</a></li> 
        </ul> 
      </li> 
    </ul>
  </div>

Chúng ta đã nhìn thấy menu dropdown có sự khác biệt. Đó là có class=”dropdown” và <ul class=”dropdown-menu”> trong khi menu mặc định WordPress chỉ có đoạn <ul class=”sub-menu”>

Sử dụng class wp bootstrap navwalker để gọi menu ra

Đầu tiên, bạn hãy download class wp bootstrap navwalker, và bỏ file wp_bootstrap_navwalker.php vào thư mục theme bạn đang sử dụng 

Tiếp theo, bạn thêm code sau vào đầu file functions.php (Nhớ sau <?php nhé)

require_once('wp_bootstrap_navwalker.php');

Nếu file wp_bootstrap_navwalker.php đặt ở trong thư mục khác thì nhớ gọi đúng đường dẫn nhé.

Tiếp theo, bạn mở file header.php của bạn lên và thêm code sau vào nơi mà bạn muốn hiển thị menu

<nav class="navbar navbar-default" role="navigation"> 
<!-- Brand and toggle get grouped for better mobile display --> 
  <div class="navbar-header"> 
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
    </button> 
    <a class="navbar-brand" href="#">Brand</a> 
  </div> 
  <!-- Collect the nav links, forms, and other content for toggling --> 
  <?php /* Primary navigation */
     wp_nav_menu( array(
       'theme_location' => 'main-menu', //Menu location của bạn
       'depth' => 2, //Số cấp menu đa cấp
       'container' => 'div', //Thẻ bao quanh cặp thẻ ul
       'container_class'=>'collapse navbar-collapse navbar-ex1-collapse', //class của thẻ bao quanh cặp thẻ ul
       'menu_class' => 'nav navbar-nav', //class của thẻ ul
       'walker' => new wp_bootstrap_navwalker()) //Cái này để nguyên, không thay đổi
);
?>
</nav>

Các bạn đừng quên lưu lại và chạy thử nhé!

Kết luận

Trên đây, tôi hướng dẫn các bạn tích hợp Navbar Bootstrap vào WordPress Menu sử dụng class wp bootstrap navwalker, nếu xảy ra bất kỳ lỗi gì hoặc không hoạt động được hãy comment dưới bài viết này hoặc gửi email cho tôi.

Click to rate this post!
[Total: 3 Average: 3.7]

Hoàng An

Tôi không phải là 1 chuyên gia lập trình, cũng không phải là 1 chuyên gia SEO. Với niềm đam mê với CNTT, tôi có thể biến ý tưởng thành sản phẩm và thích chia sẻ kiến thức cho người khác. Nếu có duyên, mời bạn đến với khoá học của tôi
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

7 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Chú bé loắc choắc
Chú bé loắc choắc
8 năm trước

Cảm ơn bạn đã hướng dẫn. Mình đã hiển thị ra menu nhưng khi click vào Dropdown menu thì lại không sổ xuống. 🙁

phương
7 năm trước
Trả lời  Hoàng An

mình đã cho bootstrap.min.css, bootstrap.min.js nhưng vẫn không xổ xuống

phương
7 năm trước
Trả lời  Hoàng An

mình hơi nhầm tý. cái mega bài trước đó tích hợp vào thì nó không xổ ra chỉ xổ ra menu bình thường.

quoc bao
6 năm trước

M đã làm theo nhưng ở chế độ mobile không xổ xuống được, đoạn html trên có bỏ vào không bạn ?

trackback

[…] Chỉnh sửa navbar thành dạng như bootstrap […]

7
0
Rất thích suy nghĩ của bạn, hãy bình luận.x