Как проверить, является ли страница прямой или косвенной дочерней страницей другой страницы в Wordpress?
У меня есть страница с идентификатором 63. На этой странице есть несколько дочерних страниц, и каждая из дочерних страниц снова имеет подстраницы. Короче говоря, страница с идентификатором 63 является супер родительской для всех страниц.
Что я хочу, так это то, что я хочу проверить, является ли текущая страница дочерней по отношению к странице с идентификатором 63. Либо прямой дочерний элемент / дочерний элемент до любого уровня.
Я могу проверить, является ли страница дочерней по отношению к странице 63. Но я не могу проверить то же самое для дочерних по отношению к дочерним страницам.
я использую $post->post_parent == 63
проверить, является ли страница дочерней по отношению к странице 63.
Как я могу проверить то же самое для всех уровней страниц?
2 ответа
$pageId= get_the_ID();
function get_topmost_parent($post_id)
{
$parent_id = get_post($post_id)->post_parent;
if($parent_id == 0)
{
return $post_id;
}
else
{
return get_topmost_parent($parent_id);
}
}
Вы можете использовать get_post_ancestors() следующим образом:
$parents = get_post_ancestors($post);
foreach($parents as $page_id){
if($page_id == ID of specific parent page){
// Do something
break; //Match found, no need to keep checking
}
}