Как сделать большую вложенность в Worpdress?

Здравствуйте.

Есть макет, со следующей иерархией:

Рубрика родитель
> Рубрика потомок > записи
> Рубрика потомок > Рубрика потомок >записи
> Рубрика потомок > Рубрика потомок > Рубрика потомок > записи

Логика такая, что если в рубрике нет записей - на странице рубрики должны выводится ссылки на вложенные категории (детей), если записи есть - выводить их.

Не понимаю как реализовать без жестких костылей.

Ах, да на сайте много других разделов, такая логика нужна только в одном.

Как делаю:
В файле категории проверяю id текущей рубрики, вывожу ее детей:
if ($catID=="139"){
			global $ancestor;
			$childcats = get_categories('child_of=' . $cat . '&hide_empty=1');
			foreach ($childcats as $childcat) {
				if (cat_is_ancestor_of($ancestor, $childcat->cat_ID) == false){
					echo '<li><h2><a href="'.get_category_link($childcat->cat_ID).'">';
					echo $childcat->cat_name . '</a></h2>';
					echo '<p>'.$childcat->category_description.'</p>';
					echo '</li>';
					$ancestor = $childcat->cat_ID;
				}
			}  
}


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

Вопрос, как поступить, возможно кто-то делал что то подобное?
  • Вопрос задан
  • 248 просмотров
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
$childcat->count
покажет количество записей в рубрике,
if( $childcat->count > 0) {
$woo_query = new WP_Query(array('tax_query' =>array(array('field' => 'slug','terms' => $terms->slug,'include_children' => false,'taxonomy' => $cur_tax)))) ;
// выводим записи
}


пример:
2174b27846.jpg
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы