Проверка раздела на наличие подразделов WordPress

Как проверить в WordPress, есть ли у категории подрубрики. А затем, в зависимости от их наличия вывести тот или иной результат.

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

Существует множество способов проверить есть ли у раздела подрубрики. Мы сделаем проверку через следующую функцию.

function check_if_category_has_child () {

    $term = get_queried_object();

    $children = get_terms( $term->taxonomy, array(
    'parent'    => $term->term_id,
    'hide_empty' => false
    ) );

    return $children;
}

Дальше, там где необходимо провести проверку вставлям этот участок:

// Только для категорий и только тех где есть дочерние рубрики
if ( is_category() and check_if_category_has_child() ) {

} else {
// Иначе ничего не выводим или выводим что-то здесь.
}

Одновременно проверяем, чтобы это был только раздел.

English Query (запросы по теме на английском языке)

Check if Current Category has Children

How to check if a category has a parent category

Привет. Ты находишься на моём сайте. Я разработчик. Здесь я делюсь своими наработками и знаниями. Спрашивай в комментариях, если тебе что-то не понятно или пиши, если есть что добавить.

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

Комментарии к статье “Проверка раздела на наличие подразделов WordPress” (8)

            • Admin
              Admin
              Автор записи
              13.08.2019 в 00:10

              Проверил. Всё работает.

              Судя по тому, что внутри is_tax идет перечисление, то код используется не верно. Этот код нужен для того, чтобы находясь в таксономии скажем buildings, узнать, есть ли у нее дочерние категории.

              Синтаксис немного переписал, он несколько устарел)

              Вот код:

                  function isTaxHasChild()
                  {
                      $term = get_queried_object();

                      $children = get_terms(
                          $term->taxonomy, [
                              'parent'     => $term->term_id,
                              'hide_empty' => false
                          ]
                      );

                      return $children;
                  }

              Вот проверка:

                  if (is_tax() && isTaxHasChild()) {

                      $child   = isTaxHasChild();
                      $count  = count($child);

                      echo 'У этой категории есть дочерние рубрики:<br>';

                      $i = 0;
                      foreach ($child as $item) {
                          echo $item->name;

                          $i++;
                          if ($i < $count)
                          echo ' - ';
                      }
                  } else {
                      echo 'Ничего нет';
                  }

              И если эту проверку положить в шаблон таксономии и открыть страницу любой из этих таксономии, то выведет результат. У меня например такой:

              У этой категории есть дочерние рубрики:
              Люди - Фильмы

              У меня показало и вывело 2 дочерние категории. А если перейти внутрь одной из этих категории, то будет указано:

              Ничего нет

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

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи: "Проверка раздела на наличие подразделов WordPress"
Если вам нужно добавить участок кода ставьте его между тегами <code></code>