Проблема с функцией get_children

Имеем:

$children = get_children($some_page_id);
$how_many_children = count($children);

Выясняется, что если у страницы нет потомков (страниц, которые ссылаются на нее как на родительскую), то $how_many_children все равно == 1, как если бы у страницы имелся 1 потомок.

Как различить эти ситуации?

Спасибо.

А эта функция аттачи считает за потомков. Видимо, получать кол-во придется через foreach, проверяя объекты на post_type.

ДокладАю – count() не годится. Оказывается, что с любым др. объектом кроме массива она дает именно 1. Сделал так :

$my_children = get_children($p_id);

if(gettype($my_children) != ‘array’) {
….
}

в вордпресс 2.6 независимо от типа страницы всегда получается не массив 🙁 что делать? как определить есть потомки или нет?

юзать get_pages

а поподробнее?

для получения дочерних страниц подойдет

$pages = get_pages('child_of=X');

где X это ID нужной страницы

вот только нужно учитывать что в массив поподут и дочернии страницы дочерних

мне всего лишь нужно определить есть ли у страницы дочерние страницы или нет, массив не нужен.

если дочерних нет то count($pages) будет равен = 0

а не возникнет ли проблема описаная Dim’ом выше?

проверте что возвращает функция при отсутствии страниц с помощью var_dump, и в соответствии с этим сформируйте условие

а как получить ID страницы-родителя родителя страницы? или ID страницы родителя самого верхнего уровня в иерархии где находится текущая? в пхп не силён совсем, поиск порыл – нарыл про $post->post_parent; но никак не могу с помощью него получить родителей выше уровнем…

нужно получить родителя как обьект. что то типа:

$parent_page = get_page($post->post_parent);

у страниц в корне post_parent = 0

иерархию можно узнать: $post->ancestors

вроде получилось 😉

Anonymous
Отправить
Ответ на: