Hiển thị child taxonomy trên parent taxonomy archive

5 giờ ago, Hướng dẫn WordPress, Views
Hiển thị child taxonomy trên parent taxonomy archive

Giới Thiệu Về Taxonomy trong WordPress

Taxonomy là một cơ chế phân loại nội dung trong WordPress. Nó cho phép bạn nhóm các bài viết (posts), trang (pages) hoặc các loại nội dung tùy chỉnh (custom post types) theo các tiêu chí nhất định. Hai loại taxonomy phổ biến nhất là danh mục (categories) và thẻ (tags). Tuy nhiên, bạn cũng có thể tạo các taxonomy tùy chỉnh để phù hợp với nhu cầu cụ thể của trang web.

Parent taxonomy là taxonomy cấp cao hơn, chứa các taxonomy con (child taxonomy) bên trong nó. Ví dụ, nếu bạn có một taxonomy tùy chỉnh “Sản phẩm” và một taxonomy tùy chỉnh khác “Loại sản phẩm,” thì “Sản phẩm” có thể là parent taxonomy, còn “Loại sản phẩm” là child taxonomy. Các taxonomy con thường chi tiết hơn và cung cấp một cách phân loại cụ thể hơn cho nội dung.

Vấn Đề: Hiển Thị Child Taxonomy Trên Trang Archive Của Parent Taxonomy

Theo mặc định, trang archive của một parent taxonomy trong WordPress thường chỉ hiển thị các bài viết (posts) hoặc nội dung được gán trực tiếp cho taxonomy đó. Nó không tự động hiển thị danh sách các child taxonomy của nó. Điều này có thể gây khó khăn cho người dùng khi điều hướng trang web của bạn, đặc biệt nếu cấu trúc taxonomy của bạn phức tạp.

Ví dụ, giả sử bạn có một parent taxonomy “Sản phẩm” với các child taxonomy như “Điện thoại,” “Máy tính,” và “Phụ kiện.” Khi người dùng truy cập trang archive “Sản phẩm,” họ có thể chỉ thấy một danh sách các bài viết chung chung về sản phẩm, mà không có gợi ý nào về các loại sản phẩm cụ thể mà bạn cung cấp. Điều này làm giảm trải nghiệm người dùng và có thể khiến họ khó tìm thấy những gì họ đang tìm kiếm.

Giải Pháp: Các Cách Hiển Thị Child Taxonomy

Có nhiều cách để hiển thị child taxonomy trên trang archive của parent taxonomy. Dưới đây là một số phương pháp phổ biến:

  • Sử dụng code trong file template taxonomy.
  • Sử dụng plugin WordPress.
  • Tạo một taxonomy template tùy chỉnh.

Sử Dụng Code Trong File Template Taxonomy

Phương pháp này yêu cầu bạn chỉnh sửa trực tiếp các file template của theme WordPress của bạn. Bạn cần xác định file template nào được sử dụng để hiển thị trang archive của taxonomy cụ thể mà bạn muốn chỉnh sửa. Thông thường, file này sẽ là taxonomy.php, taxonomy-{taxonomy}.php, hoặc archive.php (nếu không có file taxonomy cụ thể nào được tìm thấy).

Sau khi xác định được file template, bạn có thể thêm đoạn code PHP để truy vấn và hiển thị danh sách các child taxonomy của parent taxonomy hiện tại. Dưới đây là một ví dụ về đoạn code bạn có thể sử dụng:


  <?php
  $taxonomy = get_queried_object();
  $terms = get_terms( array(
      'taxonomy' => $taxonomy->taxonomy,
      'parent'   => $taxonomy->term_id,
  ) );

  if ( $terms ) {
      echo '<ul>';
      foreach ( $terms as $term ) {
          echo '<li><a href="' . esc_url( get_term_link( $term ) ) . '">' . esc_html( $term->name ) . '</a></li>';
      }
      echo '</ul>';
  }
  ?>
  

Đoạn code này sử dụng hàm get_terms() để truy vấn tất cả các taxonomy con của taxonomy hiện tại. Sau đó, nó lặp qua danh sách các taxonomy con và hiển thị chúng dưới dạng một danh sách liên kết.

Lưu ý quan trọng: Chỉnh sửa trực tiếp các file template của theme có thể gây ra lỗi nếu bạn không cẩn thận. Luôn sao lưu file trước khi chỉnh sửa và cân nhắc sử dụng child theme để tránh mất các thay đổi khi cập nhật theme.

Sử Dụng Plugin WordPress

Nếu bạn không muốn chỉnh sửa trực tiếp code, bạn có thể sử dụng một plugin WordPress để hiển thị child taxonomy. Có nhiều plugin miễn phí và trả phí có thể giúp bạn thực hiện việc này. Một số plugin phổ biến bao gồm:

  • Taxonomy Menu
  • Category Order and Taxonomy Terms Order
  • Custom Taxonomy Display

Các plugin này thường cung cấp giao diện người dùng dễ sử dụng để cấu hình cách child taxonomy được hiển thị. Bạn có thể chọn vị trí hiển thị, thứ tự hiển thị, và các tùy chọn khác.

Tạo Một Taxonomy Template Tùy Chỉnh

Một phương pháp nâng cao hơn là tạo một taxonomy template tùy chỉnh. Điều này cho phép bạn kiểm soát hoàn toàn giao diện của trang archive taxonomy. Để làm điều này, bạn cần tạo một file template với tên taxonomy-{taxonomy}.php, trong đó {taxonomy} là slug của taxonomy mà bạn muốn tạo template tùy chỉnh. Ví dụ, nếu taxonomy của bạn có slug là “product_category,” thì tên file template sẽ là taxonomy-product_category.php.

Trong file template tùy chỉnh này, bạn có thể sử dụng code HTML, CSS, và PHP để tạo giao diện mong muốn cho trang archive taxonomy. Bạn có thể bao gồm đoạn code PHP để hiển thị danh sách các child taxonomy, cũng như các thông tin khác liên quan đến taxonomy đó.

Ví Dụ Cụ Thể: Hiển Thị Child Category Trên Archive Category

Giả sử bạn muốn hiển thị các child category trên trang archive của một category. Bạn có thể sử dụng đoạn code sau trong file category.php của theme (hoặc trong một child theme):


  <?php
  $category = get_queried_object();
  $child_categories = get_terms( array(
      'taxonomy' => 'category',
      'parent'   => $category->term_id,
  ) );

  if ( $child_categories ) {
      echo '<h3>Danh Mục Con:</h3>';
      echo '<ul>';
      foreach ( $child_categories as $child_category ) {
          echo '<li><a href="' . esc_url( get_term_link( $child_category ) ) . '">' . esc_html( $child_category->name ) . '</a></li>';
      }
      echo '</ul>';
  }
  ?>
  

Đoạn code này tương tự như ví dụ trước, nhưng nó được điều chỉnh để làm việc với taxonomy “category” mặc định của WordPress. Nó truy vấn tất cả các child category của category hiện tại và hiển thị chúng dưới dạng một danh sách liên kết.

Lưu Ý Khi Triển Khai

Khi triển khai bất kỳ giải pháp nào để hiển thị child taxonomy, hãy ghi nhớ những điều sau:

  • Sao lưu dữ liệu: Luôn sao lưu website của bạn trước khi thực hiện bất kỳ thay đổi nào đối với code hoặc cài đặt plugin.
  • Sử dụng child theme: Nếu bạn chỉnh sửa các file template của theme, hãy sử dụng child theme để tránh mất các thay đổi khi cập nhật theme.
  • Kiểm tra kỹ lưỡng: Sau khi triển khai giải pháp, hãy kiểm tra kỹ lưỡng trang web của bạn để đảm bảo rằng child taxonomy được hiển thị chính xác và hoạt động như mong đợi.

Việc hiển thị child taxonomy trên trang archive của parent taxonomy có thể cải thiện đáng kể trải nghiệm người dùng và giúp người dùng dễ dàng điều hướng trang web của bạn. Bằng cách sử dụng một trong các phương pháp được mô tả trong bài viết này, bạn có thể dễ dàng thêm chức năng này vào trang web WordPress của mình.