3 уровня станиц бабунки ролители и внучки

не могу найти, уже на форуме это выкладывалось

старницы с вложенностью в 3 уровня

для третьеро уровня нужно узнать ид бабушки

я так полагаю если с помошью этого $post->post_parent; можно узнать ид ролителя(2 уровень ) и записать его в какую нить переменную, а потом как то повторить проверку родителя(1 уровня) для полученно значения, но вот как?

кто подскажет?

В цикле, пока не ноль. Тогда пофигу какой уровень.

Вот нашел на помойке для рубрик вывод имени прародителя.

$cc = get_category($cat);
while ($cc->category_parent) $cc = get_category($cc->category_parent);
echo $cc->cat_name;

сие дело привел к

$cc = get_post($post);
while ($cc->post_parent) $cc = get_post($cc->post_parent);
print $cc;

пока результата 0, print $cc; выводит Object
что то этот Object представляет из себя не знаю

идешник нужен для условия (is_page(‘4′) || $post->post_parent==’4’)

пробую вот это
$print29 = $post->post_parent;
print $print29;
получаю ид родителя, по идее если этоже выполнить с полученным ид ролителя должен получиться ид следующего, но что то ничего не выходит
$print30 = $print29->post_parent;
print $print30;
но что то ничего не выходит

Объекты и массивы выводятся при помощи print_r() или var_dump(), print – только для скаляров.

$cc = get_post($post); – ошибка. $post – объект, а не число. Попробуйте заменить на $cc = $post;

print_r($post) столько инфы в нем, я аж офигел ненадолго

да все работает, но работает только при условии если искомая страница является самой первой в этой тройке, а если их там 4 или 5 уровней всеравно выведет самую первую

$cc = $post;
while ($cc->post_parent) $cc = get_post($cc->post_parent);

в условии использовать $cc->ID

обьект страницы имеет свойство "ancestors" именно оно и хранит всех радителей.

print_r($post) столько инфы в нем, я аж офигел ненадолго

Зато сколько нового можно узнать! 🙂

ага экспириенс сразу поднялся,
вот еще бы понять почему в станице(page) используется get_post
хотя есть get_page
почему так?
ps. сравнивать буду потом

Разница в поведении при отсутствующих параметрах.

function &get_page(&$page, $output = OBJECT, $filter = ‘raw’) {
if ( empty($page) ) {
if ( isset( $GLOBALS[‘page’] ) && isset( $GLOBALS[‘page’]->ID ) ) {
return get_post($GLOBALS[‘page’], $output, $filter);
} else {
$page = null;
return $page;
}
}

$the_page = get_post($page, $output, $filter);
return $the_page;
}

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