2016-04-28 2 views
1

Я пытаюсь получить подкатегорию текущей категории, используя wp_dropdown_categories.Попытка получить подкатегорию текущей категории

onclick категории, я хочу получить подкатегорию. Я попытался использовать функцию get_categories с аргументами, но это не дает мне подкатегорий. Использование has_children дает мне пустой массив.

Это мой код:

add_action('wp_ajax_wp_get_subcategory', 'wp_get_subcategory'); 

function wp_get_subcategory() { 
    $parent_cat_ID = $_POST['selected_category']; 

    $args = array(
    'child_of' => $parent_cat_ID, 
    'taxonomy' => 'download_category', 
    'hide_empty' => 0, 
    'hierarchical' => false, 
    'depth' => 1, 
    'parent' => $parent_cat_ID 
    ); 

    if (isset($parent_cat_ID)) { 
     $has_children = get_categories($args); 

     if ($has_children) { 

      //wp_dropdown_categories($args); 
      foreach ($has_children as $category) { 

       $option = '<option value="'.$category->cat_ID.'">'; 
       $option .= $category->cat_name; 
       echo $option .= '</option>'; 

      } 
     } else { 
      ?><select name="sub_cat_disabled" id="sub_cat_disabled" disabled="disabled"><option>No child categories!</option></select><?php 
     } 
     die();  
    } 
} 
+0

сейчас я получаю подкатегории благодаря – Bhavesh

ответ

0

Попробуйте это два примера я беру это из какого-то сайта ссылка. Я надеюсь, что это может, полезно для вас

  1. Список подкатегорий при просмотре категории, и братья/одноуровневых категории, если в подкатегории.

    <?php 
    
    if (is_category()) { 
    $this_category = get_category($cat); 
    } 
    ?> 
    
    <?php 
    if($this_category->category_parent) 
        $this_category = wp_list_categories('orderby=id&show_count=0 
        &title_li=&use_desc_for_title=1&child_of='.$this_category->category_parent."&echo=0"); 
        else $this_category = wp_list_categories('orderby=id&depth=1&show_count=0 
        &title_li=&use_desc_for_title=1&child_of='.$this_category->cat_ID.  "&echo=0"); 
        if ($this_category) { ?> 
    
        <ul> 
        <?php echo $this_category; ?> 
        </ul> 
        <?php } ?> 
    
  2. Пусть категорию, подкатегорий вы хотите показать это категория 10, и что его категории «nicename» является «архивы».

    <select name="event-dropdown"> 
    <option value=""><?php echo esc_attr_e('Select Event', 'textdomain'); ?></option> 
    <?php 
    $categories = get_categories(array('child_of' => 10); 
    foreach ($categories as $category) { 
    printf('<option value="%1$s">%2$s (%3$s)</option>', 
        esc_attr('/category/archives/' . $category->category_nicename), 
        esc_html($category->cat_name), 
        esc_html($category->category_count) 
        ); 
    } 
    ?> 
    </select> 
    

Справочно: click me

2

Это лучше, если вы получаете категории в настоящее время, насколько ваш старый код выглядит есть одна небольшая ошибка, поэтому ваши категории не отображаются должным образом. Просто измените ваш

'hierarchical' => false, 

в

'hierarchical' => true, 

и так, ваши категории будут показывать красиво.