get_ancestors()
Получает ID родительских элементов указанного объекта (страницы, таксономии, категории).
Работает на основе: get_post_ancestors(), get_term()
Основа для: get_term_parents_list()
1 раз — 0.00174 сек (очень медленно) | 50000 раз — 0.95 сек (очень быстро) | PHP 7.2.5, WP 5.0.1
Хуки из функции
Возвращает
int[]
. Массив идентификаторов (ID) родительских элементов, где последняя ячейка массива будет содержать ID самого верхнего элемента цепочки. Или пустой массив.
Использование
get_ancestors( $object_id, $object_type, $resource_type );
- $object_id(строка/число) (обязательный)
- ID дочернего элемента (элемента ID родительских элементов которого надо получить).
- $object_type(строка)
- Название типа объекта, к которому относится элемент. Это может быть название таксономии:
post_tag
,category
... или название типа записиpage
,post
.
По умолчанию: '' - $resource_type(строка) (WP 4.1)
- Название типа объекта. Может быть:
post_type
илиtaxonomy
.
По умолчанию: ''
Примеры
#1 Получим ID всех родительских элементов таксономии
Предположим у нас есть такая структура категорий. В скобках указаны ID:
- Книги (6)
- фантастика (23)
- Рэй Брэдбери (208)
- фантастика (23)
$ancestors = get_ancestors( 208, 'category' );
Теперь, переменная $ancestors будет содержать в себе такой массив:
Array ( [0] => 23 [1] => 6 )
#2 Получим ID всех родительских страниц
Идентично первому примеру, можно получить ID родительских постоянных страниц, предположим у нас такая структура:
- О сайте (447)
- Дочерняя страница (448)
$ancestors = get_ancestors( 448, 'page' );
Теперь, переменная $ancestors будет содержать в себе массив:
Array ( [0] => 447 )
#3 Получим ID самой верхней родительской категории
$ancestors = get_ancestors( 208, 'category' ); $top_cat_id = array_pop( $ancestors );
Список изменений
С версии 3.1.0 | Введена. |
С версии 4.1.0 | Introduced the $resource_type argument. |