WordPress 帮助检查父页面

发布于 2024-10-17 03:19:08 字数 745 浏览 4 评论 0原文

我有这个功能来检查页面是否是父页面:

function is_tree($pid) {      // $pid = The ID of the page we're looking for pages underneath
        global $post;         // load details about this page
        if(is_page()&&($post->post_parent==$pid||is_page($pid)))
               return true;   // we're at the page or at a sub page
        else
               return false;  // we're elsewhere
};

并像这样使用它来显示菜单:

<?php if (is_tree(6) || is_page(6)) { menu code here } ?>

但是它仅适用于直接子页面,不适用于子页面,例如

domain.com/page1.0 /page1.1/page1.1.1/

如果 page1.0 的 id 为 6,则菜单将出现在页面 1.0 和 1.1 上,但不会出现在 1.1.1 上

如何修改代码以使树功能适用指定页面 ID 以下的任何内容,而不仅仅是直接子页面。

谢谢

I have this function that checks if a page is the parent:

function is_tree($pid) {      // $pid = The ID of the page we're looking for pages underneath
        global $post;         // load details about this page
        if(is_page()&&($post->post_parent==$pid||is_page($pid)))
               return true;   // we're at the page or at a sub page
        else
               return false;  // we're elsewhere
};

and use it like so to show a menu:

<?php if (is_tree(6) || is_page(6)) { menu code here } ?>

However it only works for the immediate sub-pages and not the sub sub pages e.g.

domain.com/page1.0/page1.1/page1.1.1/

If page1.0 has an id of 6, the menu will appear on page 1.0 and 1.1 but not 1.1.1

How can I modify the code so that the tree function works for ANYTHING that is below the page ID specified and NOT just the IMMEDIATE sub-pages.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

这个俗人 2024-10-24 03:19:08

使用get_post_ancestors()

function is_tree( $pid ) {
    if ( is_page() ) {
        return ( get_the_ID() == $pid || in_array( $pid, get_post_ancestors( get_the_ID() ) ) );
    }

    return false;
}

Use get_post_ancestors():

function is_tree( $pid ) {
    if ( is_page() ) {
        return ( get_the_ID() == $pid || in_array( $pid, get_post_ancestors( get_the_ID() ) ) );
    }

    return false;
}
最丧也最甜 2024-10-24 03:19:08

这有效:

function is_tree( $pid ) {
global $post;         // load details about this page
if ( is_page() ) {
    return ( $post->ID == $pid || in_array( $pid, get_post_ancestors( $post->ID ) ) );
}

return false;

};

This works:

function is_tree( $pid ) {
global $post;         // load details about this page
if ( is_page() ) {
    return ( $post->ID == $pid || in_array( $pid, get_post_ancestors( $post->ID ) ) );
}

return false;

};

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文