2016-04-28 18 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

私はいくつかの参照のウェブサイトからこれを取る必要があり、この2例を試してみてください。サブカテゴリであれば カテゴリ兄弟/カテゴリー、および兄弟を見た場合、私は、このかもしれ役に立つ

    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

    限り、あなたの古いコードは、あなたのカテゴリが正しく表示されない理由です1つのマイナーな間違いがあるに見えるよう、お勧めします。ちょうどあなたの

    'hierarchical' => false, 
    

    'hierarchical' => true, 
    

    などに変更して、あなたのカテゴリがきれいに表示されます。

    関連する問題