get_post_ancestors()
Отримує ID всіх батьківських записів до зазначеного у вигляді масиву.
Працює на основі:
get_post()
get_post()
Основа для:
get_ancestors()
get_ancestors()
1 раз – 0.001242 сек
(дуже повільно) | 50000 разів – 0.33 сек
(дуже швидко) |
PHP 7.2.5, WP 5.0.1
(дуже повільно) | 50000 разів – 0.33 сек
(дуже швидко) |
PHP 7.2.5, WP 5.0.1
Хуків немає.
Повертає
int[]
. Повертає масив із ID батьківських записів. Якщо батьківських записів немає, то буде повернено порожній масив.
Використання
get_post_ancestors( $post_id );
-
$post_id
(число/об’єкт) (обов’язковий) - ID або об’єкт запису (поста), батьків якого потрібно отримати.
Приклади
#1 Демонстрація
Допустимо сторінка 30 є дочірньою до 20, а 20 дочірньою до 10. Тобто. 10 – сторінка верхнього рівня, а порядок зверху вниз по дереву такий: 10> 20> 30 .
Тоді:
$ancestors = get_post_ancestors(30); /* Поверне Array ( [0] => 20 [1] => 10 ) */
#2 Виведемо заголовок батьківської сторінки
Нехай структура наших сторінок така:
Сторінка 1 (ID=611) - Сторінка 1-1 (ID=613) - Сторінка 1-1-1 (ID=615) - Сторінка 1-1-1-1 (ID=617) Сторінка 2 (ID=712) - Сторінка 2-1 (ID=755) - Сторінка 2-2 (ID=781)
Отримаємо заголовок батьківської сторінки:
// Отримуємо масив з id всіх батьків (передаємо ID Сторінка 1-1-1-1) $ids = get_post_ancestors(617); /* Поверне Array ( [0] => 615 [1] => 613 [2] => 611 ) */ // Беремо останній ID з масиву – це ID найвищої сторінки $ id = array_pop ($ ids); // Виводимо заголовок цієї сторінки echo get_the_title($id); // виведе Сторінка 1
#3 Перевіримо, чи є дочірня сторінка
У нас є вкладена структура постійних сторінок і нам потрібно перевірити, чи є ID 34 батьком для сторінки 12:
$ancestors = get_post_ancestors(12); if( in_array(34, $ancestors) ) echo "пост 34 - це батьківський до 12"; else echo "пост 34 не є батьком посту 12";
список змін
З версії 2.5.0 | Введено. |