Как получить только родительские категории без дочерних

Решено

Здравствуйте!
Получить категории оказалось немного сложнее чем казалось 🙂
Имеется следующий код:


get_categories(array('taxonomy' => 'category', 'number' => 2, 'include' => '123'))

Нужно получить 2 родительские категории из таксономии category (в род. категории есть дочерние).
В примере кода использовал функцию include, родительская категория показывается, но вместе с ней все ее вложения, все дочерние категории.

Нужно получить только родительские.

Спасибо.

Добавить Комментарий
    Ответ

    я бы предпочел использовать функцию get_terms()
    Например:

     $terms = get_terms('category', 'orderby=count&hide_empty=0&parent=123');
     $count = count($terms);
     if($count > 0){
     echo "<ul>";
     foreach ($terms as $term) {
     echo "<li>".$term->name."</li>";
    }
     echo "</ul>";
     }
     

    Прошу прощения, не написал раньше что у меня селект.
    Через get_terms действительно лучше реализуется, но вот дочерние категории все равно остались.

    Вот код:

    
    {var $categories = get_terms('category', 'orderby=count&hide_empty=0&parent=123');}
    
    {if isset($categories) && count($categories) > 0}
    
    <div class="category">
    
    <select data-placeholder="{__ 'Запрос'}" name="category" class="category default-disabled" style="display: none;">
    
    <option></option>
    
    {!= recursiveCategory($categories, $selectedCat, 'category', "")}
    
    </select>
    
    </div>
    
    {/if}
    
    

    Спасибо.

    в 24.02.2016.

    В php немного разбираетесь? Если да то можете сделать var_dump() переменной в цикле, и там посмотреть в как хранится в объекте переменная с значением родительской категории. Затем сделать проверку на значение этой переменной

    в 24.02.2016.

    Если нужно получить только родительские, начальные категории, то:

    
    $myterms = get_terms( 'taxonomy_name_here', array( 'parent' => 0 ) );
    
    

    в 24.02.2016.

    Спасибо)

    в 24.02.2016.
    Добавить Комментарий

    Как вариант попробуйте так получить дочерние:

    
    <?php
    
    $termID = 10;
    
    $taxonomyName = "products";
    
    $termchildren = get_term_children( $termID, $taxonomyName );
    echo '<ul>';
    
    foreach ($termchildren as $child) {
    
    $term = get_term_by( 'id', $child, $taxonomyName );
    
    echo '<li><a href="' . get_term_link( $term->term_id, $term->taxonomy ) . '">' . $term->name . '</a></li>';
    
    }
    
    echo '</ul>';
    
    ?>
    
    

    Добавить Комментарий

    Ваш ответ

    Размещая свой ответ, вы соглашаетесь с правилами сайта.