post image

Cách hiển thị Breadcrumbs

Breadcrumbs là dạng menu chỉ cho người dùng biết họ đang ở đâu trên một trang web. Đặc biệt với những trang web có chiều sâu trong Categories thì Breadcrumbs trở nên rất hữu dụng khi người dùng đi sâu vào cấu trúc phức tạp bên trong của trang web. Trong bài này bạn sẽ học được cách tạo Breadcrumbs cho blog của bạn.

breadcrumbs blog link

Tất nhiên cách đơn giản nhất bao giờ là bạn cũng sẽ nghĩ đến Plugin vì WordPress có rất rất nhiều plugin phù hợp với mọi nhu cầu của bạn. Bạn có thể download plugin này về và thử cài đặt và sử dụng xem như thế nào.

Tuy nhiên đôi khi người ta tránh sử dụng quá nhiều plugin vì nhiều lý do như sợ bị lỗi, dễ bị hack, tạo rác trong database v.v.. cho nên nếu có thể viết được code cho tác vụ mình cần, bạn cũng nên xem xét đến khía cạnh này. Dưới đây là đoạn code bạn dùng để tạo Breadcrumbs mà không cần sử dụng Plugin (code credited to Dimox

Trước tiên bạn hãy mở file functions.php và gõ vào đoạn code sau:

<?php
function breadcrumbs() {

  $delimiter = '<span>&raquo;</span>';
  $name = 'Home'; //text for the 'Home' link
  $currentBefore = '<span class="current">';
  $currentAfter = '</span>';

  if ( !is_home() || !is_front_page() || is_paged() ) {

    echo '<div id="crumbs">';

    global $post;
    $home = get_bloginfo('url');
    echo '<a href="' . $home . '">' . $name . '</a> ' . $delimiter . ' ';

    if ( is_category() ) {
      global $wp_query;
      $cat_obj = $wp_query->get_queried_object();
      $thisCat = $cat_obj->term_id;
      $thisCat = get_category($thisCat);
      $parentCat = get_category($thisCat->parent);
      if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
      single_cat_title();

    }

    echo '</div>';

  }
}
?>

Đoạn code trên là tôi giản lược lại nhiều từ đoạn code gốc vì nhiều phần không cần thiết, nếu thích bạn có thể tham khảo ở bài gốc để biết thêm chi tiết. Đoạn code này khi được gõ vào file functions.php nó sẽ tạo ra một hàm tùy biến với tên là breadcrumbs(). Cả đoạn code bắt đầu với việc tạo một số biến để dùng sau này cho đoạn code. Sau đó phần logic chính của function này bắt đầu bằng một mệnh đề if, nó sử dụng conditional tags có sẵn trong WordPress để kiểm tra xem người dùng đang ở đâu. Nếu các điều kiện này thỏa mãn thì nó sẽ cho chạy đoạn code ở trong và bao gồm một số query để xác định vị trí hiện tại.

Cuối cùng để hiển thị breadcrumbs bạn mở file index.php lên và gọi hàm này ra ở chỗ phù hợp.

<?php if (function_exists('breadcrumbs')) breadcrumbs(); ?>

Bạn cũng có thể chỉ cần gọi trực tiếp hàm này ra mà không cần phải sử dụng mệnh đề if như trên. Nhưng nó cũng là một thói quen tốt trước khi sử dụng hàm, nên kiểm tra xem nó có tồn tại hay không. Nếu bạn gọi trực tiếp hàm mà nếu hàm đó chưa được tạo, nó sẽ báo lỗi và làm hỏng cả trang web. Cuối cùng thì bạn chỉ cần thêm chút CSS cho nó tươm tất hơn.

«

»

  1. lopsentop says:

    trời ơi!!! hix hix
    mình đọc không kỹ

    cái này dùng cho WordPress hix
    anh nơi cái này mình xài vào PHP được không anh
    còn em thấy anh cũng có nói đến cái vấn đề 2 ngôn ngữ bằng WordPress , hix vậy php có không anh
    mấy cái này em đang cần
    hix hic

  2. lopsentop says:

    cái này hay nè
    cảm ơn anh nhiều

    em đang cần cái này

  3. kaylaximuoi says:

    @Tuan Nguyen: Nếu bạn viết code thuần php, không dựa trên framework nào thì thử cách này xem:

    Giá trị $file trả về là tên bạn đặt cho homepage, thông thường là “index”.

    • kaylaximuoi says:

      $path = $_SERVER['REQUEST_URI'];

      $file = basename($path); // trả về index.php
      $file = basename($path, “.php”); // trả về index

  4. Nếu em dùng WP và include nó vào trang index.php thì khi vào trang single.php em bỏ đoạn include đó đi thôi đó mà! nếu em chưa xem loạt video của anh về WP em nên xem vì trong đó anh giải thích rất rõ ràng một số vấn đề.

  5. Anh DW cho em hỏi vấn đề này không liên quan đến wordpress
    Em đang soạn 1 trang web bằng php trong trang chủ em có include 1 file slider ảnh và tin mới nhất ( ?>php include “slider.php” ?> ). Giờ làm sao để cái slider đó chỉ hiển thị ở trang chủ thôi còn tất cả các trang còn lại nó biến mất. Em biết là dùng hàm IF để làm nhưng em không biết cách thức khai báo như thế nào. Mong nhận được câu trã lời từ anh !!!

  6. HiTheSun says:

    Cảm ơn về bài viết hữu ích :]

  7. Nếu bạn muốn dùng link thì bạn phải dùng thêm hàm get_category_link() bạn có thể thao khảo thêm tại trang wordpress.org
    Hay các bạn có thắc mắc các bạn có thể liên hệ anh izwebz trả lời hoặc qua mail của mình hethongthongtin@gmail.com hay diễn đàn của mình forum.livesupport.vn. Nhưng tốt nhất là liên hệ mình qua mail nha các bạn

    Website: ictexpress.com

  8. Hùng says:

    hi, :D
    cám ơn nhé
    sao mình làm thử nhưng nó chỉ hiển thị thế này

    “Home » ”

    mà không có link category :D
    chỉ có link về home thôi :D

  1. BB
  2. BB
  3. BB

arrow

Lưu ý khi post comment:

  • Không "bóc tem" topic
  • Dùng lời lẽ có văn hoá và lịch sự
  • Xem trang FAQs trước khi hỏi
  • Bạn có thể dùng thẻ HTML như:<strong>, <em>, <a>
  • Đặt code trong thẻ [php],[html],[javascript],[css]

Chọn kiểu gõ: Tự động TELEX VNI Tắt