Как проверить, является ли страница прямой или косвенной дочерней страницей другой страницы в 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
    }
 }
Другие вопросы по тегам