如果父页面ID匹配,则返回True

时间:2020-01-06 作者:benhen31

我正在尝试编写一个函数(运气不好),该函数对顶级父页进行简单检查,如果ID与提供的ID号匹配,则返回true。

例如如果我在Firefly>Kaylee>Outfits页面上,我将为我的函数提供Firefly页面的ID(可能是“29”)。函数将返回True。

如果我在“边缘>Josh>装备”页面上,相同的函数调用将返回False,因为顶级父级(边缘)没有29的ID。

我在这里看到了可以使用直接父级执行此操作的示例,但如果调用函数的页面深度超过一级,则这些示例不起作用。

如何编写该函数,使其始终能够找到最顶层的父级,而不管调用函数的页面有多深,并返回True或False?

非常感谢,本。

1 个回复
最合适的回答,由SO网友:Had1z 整理而成

您可以使用get_post_ancestors.根祖先是返回数组的最后一个元素。以下是根据当前页面的根祖先检查目标页面id的函数:

function check_page_parent( $target_page_id ) {
    $ancestors = get_post_ancestors( get_the_ID() );

    if ( $ancestors ) {
        $top_most_parent_index = count( $ancestors ) - 1;
        $top_most_parent_id    = $ancestors[ $top_most_parent_index ];

        return ( $top_most_parent_id == $target_page_id);
    }

    return false;
}

相关推荐

是否可以为特定的类别或标签自定义Pages_Links()?

我正在为我的客户创建类别和标记页面模板,以便他们可以将新闻文章发布到新闻类别页面和特定的新闻页面,这些页面由标记分隔,每个页面底部都有分页导航。然而,我注意到,分页nav考虑了所有属于任何类别或具有任何标签的帖子。我知道paginate\\u links()不会以任何类似于WP\\u Query()的category\\u name参数的方式传递参数。记住这一点,我花了很多时间在google上搜索,想找到一个解决方案,将所有不相关的帖子从paginate\\u links()的范围中排除,但运气不好。是否