Имеем:
$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
а поподробнее?
для получения дочерних страниц подойдет
где X это ID нужной страницы
вот только нужно учитывать что в массив поподут и дочернии страницы дочерних
мне всего лишь нужно определить есть ли у страницы дочерние страницы или нет, массив не нужен.
если дочерних нет то count($pages) будет равен = 0
а не возникнет ли проблема описаная Dim’ом выше?
проверте что возвращает функция при отсутствии страниц с помощью var_dump, и в соответствии с этим сформируйте условие
а как получить ID страницы-родителя родителя страницы? или ID страницы родителя самого верхнего уровня в иерархии где находится текущая? в пхп не силён совсем, поиск порыл – нарыл про $post->post_parent; но никак не могу с помощью него получить родителей выше уровнем…
нужно получить родителя как обьект. что то типа:
у страниц в корне post_parent = 0
иерархию можно узнать: $post->ancestors
вроде получилось 😉