我有这个函数来检查页面是否是父页面:
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的ANYTHING,而不仅仅是IMMEDIATE子页面。
由于
答案 0 :(得分:1)
function is_tree( $pid ) {
if ( is_page() ) {
return ( get_the_ID() == $pid || in_array( $pid, get_post_ancestors( get_the_ID() ) ) );
}
return false;
}
答案 1 :(得分:0)
这有效:
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;
};