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

Решено

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


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>';

?>

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

Ваш ответ

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