2015-01-09 8 views
0

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

function categoryList() { 


    $args = array(
    'orderby' => 'name', 
    'order' => 'ASC' 
); 
$categories = get_categories($args); 

    $output .= '<ul class="category-list">'; 
    foreach($categories as $category) { 
      if ($category){ 
      $output .= '<li><a href="' . get_category_link($category->term_id) . '" title="' . sprintf(__("View all posts in %s"), $category->name) . '" ' . '>' . $category->name.'</a>'; 
      } 
    } 

    $output .= '</li>'; 
    $output .= '</ul>'; 

    return $output; 

} 

ответ

0

По материнским категориям, я полагаю, вы имеете в виду категории верхнего уровня. На самом деле это документировано на Codex page for get_categories: Вы должны позвонить get_categories с parent => 0

$args = array(
    'orderby' => 'name', 
    'order' => 'ASC', 
    'parent' => 0 
); 
$categories = get_categories($args); 
+0

странная вещь: у меня есть 3 родительские категории без детей и одна родительская категория с 3 детьми. однако, когда я добавляю выше, он только показывает родительскую категорию с chidls. –

+0

Это странно! Я действительно не знаю, в чем проблема. Возможно, вы должны не согласиться с моим ответом, чтобы кто-то еще мог звонить. – vicvicvic

0

Список только верхнего уровня (родительский) классифицировались в WordPress. Параметр «hide_empty» => 0 гарантирует список даже пустых категорий верхнего уровня.

 $args = array(
       'orderby' => 'name', 
       'order' => 'ASC', 
       'parent' => 0, 
       'hide_empty' => 0, 
       //'exclude' => '7', 
       // optional you can exclude parent categories from listing 
     ); 

     $categories = get_categories($args); 
Смежные вопросы