Hàm get sub category sản phẩm

Nếu bạn cần get tên sub category sản phẩm của 1 category nào đó để chèn vào 1 trang (ví dụ trang chủ).

Hãy sử dụng hàm sau chèn vào functions.php của theme đang dùng:

//Hàm get danh mục con
function mh_product_subcategories( $args) {
    extract($args);
    $IDbyNAME = get_term_by('name', $cat, 'product_cat');
    $product_cat_ID = $IDbyNAME->term_id;
    $args = array(
        'hierarchical' => 1,
        'show_option_none' => '',
        'hide_empty' => 0,
        'parent' => $product_cat_ID,
        'taxonomy' => 'product_cat',
        'orderby' => 'date',
        'order' => 'ASC'
    );    
    $list .= '<ul class="wooc_sclist">';
    $subcats = get_categories($args); 
    foreach ($subcats as $sc) {
        $link = get_term_link( $sc->slug, $sc->taxonomy );
        $list .= '<li><a href="'. $link .'">'.$sc->name.'</a></li>';
    } // end foreach
    $list .= '</ul>';
    return $list;
}
add_shortcode('sub_cat','mh_product_subcategories');

Cách sử dụng: Chèn  shortcode sau vào nơi muốn hiển thị [sub_cat cat="tên category cha"]

Vài điểm lưu ý:

  • Hàm này áp dụng cho sản phẩm woocommerce. Nếu các bạn muốn áp dụng cho loại khác hãy thay thế ‘taxonomy’ => ‘product_cat’ trong hàm trên thành loại taxonomy mình cần dùng
  • Đoạn cat="tên category cha" trong shortcode là tên category bạn cần lấy sub cat
  • Hiển thị ở đây mặc định là dạng list sổ dọc (ul – li), nếu bạn muốn hiển thị hàng ngang hoặc kiểu nào khác thì chịu khó css

Chúc các bạn thành công!

Viết một bình luận