Функция cat_is_ancestor_of() в WordPress: проверка родительства категорий

# Функция CAT_IS_ANCESTOR_OF() │ WP 2.1.0

Функция cat_is_ancestor_of() позволяет проверить, является ли указанная категория дочерней по отношению к другой категори��. Эта проверка охватывает все уровни вложенности категорий.

## Примечания

- Функция будет работать только в том случае, если категория, указанная в параметре $cat2, вложена в категорию $cat1.
- Результат будет возвращать true, даже если $cat2 вложена в $cat1 через несколько категорий (то есть при многослойной вложенности).
- В параметры необходимо передавать именно число или объект. Например, если вы передадите число как строку '4', функция вернёт false, даже если категории связаны.

Использует: term_is_ancestor_of()

**Время выполнения:**
- 1 раз — 0.000757 сек (медленно)
- 50000 раз — 1.05 сек (быстро)
- PHP 7.0.5, WP 4.5.1

## Возвращаемое значение

Функция возвращает true или false. Это указывает на то, является ли $cat2 дочерней категория к $cat1.

## Использование

```php
cat_is_ancestor_of( $cat1, $cat2 );
  • $cat1 (number/object) (обязательно) — ID родительской категории. Эта категория должна быть родителем категории, указанной в параметре $cat2.
  • $cat2 (number/object) (обязательно) — ID дочерней категории любого уровня. Эта категория должна быть дочерней по отношению к категории, указанной в параметре $cat1.

Пример

1. Меню навигации только для категории с ID 4

Этот пример можно использовать на странице категории, чтобы отображать навигационное меню wp_nav_menu() только для категории с ID 4 или её подкатегорий.

// Если это категория 4 или её подкатегория
if( cat_is_ancestor_of( 4, $cat ) || is_category( 4 ) ){
    wp_nav_menu( [ 'menu' => 'Music' ] );
}

Добавьте свой пример

Изменения

  • Версия 2.1.0 — введена функция.

Код функции CAT_IS_ANCESTOR_OF()

Функция находится в файле wp-includes/category.php.

function cat_is_ancestor_of( $cat1, $cat2 ) {
    return term_is_ancestor_of( $cat1, $cat2, 'category' );
}

Связанные функции

Отношения (термины публикаций и т.д.)

  • get_adjacent_post()
  • get_ancestors()
  • get_category_parents()
  • get_next_post()
  • get_post_ancestors()
  • get_previous_post()
  • get_term_children()

Условные теги

  • category_exists()
  • comments_open()
  • email_exists()
  • has_block()
  • has_category()
  • has_custom_header()
  • и многие другие...

Категории

  • category_description()
  • get_cat_ID()
  • get_cat_name()
  • get_categories()
  • get_category()
  • get_category_by_slug()
  • и многие другие...

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *