2016-04-01 16 views
0

Я создал некоторые пользовательские категории для продуктов, и у него есть подкатегории, а подкатегории имеют дополнительные подкатегории. теперь сначала я показываю основные категории. Если я покажу там sub, то будут показаны все подкатегории, относящиеся к этой категории и ее подкатегории. Я хочу показать их шаг за шагом. То есть, если пользователь нажимает на главную категорию, то он переходит на страницу своей категории. Если пользователь нажмет одну из своих подкатегорий, то он должен перейти к подкатегориям и, если не имеет подкатегории, то отобразили продукты. Код:Категории и подкатегории wordpress

$products = get_term_children($term_id[0], 'product-cat'); 
if(count($products) > 0){ 
    $count = 0; 
    $sorted_products = array(); 

    foreach ($products as $product) { 

     $sorted_products = get_term($product, 'product-cat'); 
     $prod_meta = get_option("taxonomy_term_".$term->term_id); 
    //echo "<pre>"; print_r($sorted_products); 

    foreach ($sorted_products as $product) { ?> 
      <div class="col-md-3 col-sm-4 col-xs-12"> 
        <a href="<?php echo $product['link']; ?>"> 
         <a href="<?php echo $product['link']; ?>" class="hvr-grow"> 
          <img class="center-block img-responsive" src="<?php echo $product['img'] ? $product['img'] : '/wp-content/themes/ruskin/images/dummy-product.jpg'; ?>" alt="<?php echo $product['name']; ?>"> 
        <h3><a href="<?php echo $product['link']; ?>"><?php echo $product['name']; ?></a></h3> 
else{ 

    # Define the WP Query post arguments. 
    $args = array(
    'post_status' => 'publish', 
    'post_type' => 'products', 
    'posts_per_page' => -1, 
    //'meta_query' => array('relation' => 'AND', array('key' => '_cus__featured', 'value' => '1', 'compare' => '='),), 
    'meta_key' => '_cus__sort_order', 
    //'meta_value' => 'meta_value', 
    'orderby' => 'meta_value_num', 
    'order' => 'ASC', 
    'tax_query' => array(
     array('taxonomy' => 'product-cat', 
      'field' => 'slug', 
      'terms' => $cats 
     ))); 
$loop = new WP_Query($args); 
$total = $loop->found_posts; 
$sliders=''; 
// Generatet the slider conteents 
while ($loop->have_posts()) { 
    $loop->the_post(); 
    $listingimg = get_post_custom_values('_cus__listing_img'); 
     $listingimg = "/wp-content/themes/bodyo/images/no-slider-img.jpg"; 

    $img = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'main_slide_img'); 
     $img = "/wp-content/themes/bodyo/images/no-slider-img.jpg"; 
    $sliders .= '<a href="'. get_the_permalink() .'" class="hvr-grow">'; 
    $sliders .= '<img src="'.$listingimg.'" class="center-block img-responsive" alt="'. get_the_title() .'" />'; 
    $sliders .= '</a>'; 
    $sliders .= '</div>'; 
    $sliders .= '<a href="'. get_the_permalink() .'">'; 
    $sliders .= '<h3>'. get_the_title() .'</h3>'; 
    $sliders .= '<p>'. get_the_excerpt() .'</p>'; 
    $sliders .= '<a href="'. get_the_permalink() .'">read more</a>'; 
    $counter++; 

} 

Он переустанавливает предыдущий порядок сортировки. То есть, если из панели управления мы даем от 2 до трех категорий в порядке сортировки, тогда она отображает только последнюю. Первые два перезаписываются.

ответ

0

Что-то вроде этого должно это сделать.

$args = array(
    'child_of' => $term_id[0], 
    'taxonomy' => 'product-cat', 
    'hierarchical' => true, 
    'depth' => 1, 
); 
$categories = get_categories($args); 

Имейте в виду, что get_categories() является оберткой get_terms().

Вы можете найти все принятые значения here, но тот, который вы ищете, - это глубина.

+0

, на каком этапе вы можете это немного разработать, –

+0

в первой строке кода, который вы опубликовали. –

Смежные вопросы