检查页面是父页面还是子页面?

2022-08-30 13:02:09

是否可以检查页面是父页面还是子页面?

我的页面设置如下:

-- 家长

---- 子页面 1

---- 子页面 2

等。

如果某个菜单是父页面,我想显示该菜单,如果它位于子页面上,则显示其他菜单。

我知道我可以做类似下面的事情,但我想让它更加动态,而不包括特定的页面ID。

<?php
if ($post->post_parent == '100') { // if current page is child of page with page ID 100
   // show image X 
}
?>

答案 1

您可以测试帖子是否是这样的子页面:
*(来自 http://codex.wordpress.org/Conditional_Tags)*

<?php

global $post;     // if outside the loop

if ( is_page() && $post->post_parent ) {
    // This is a subpage

} else {
    // This is not a subpage
}
?>

答案 2

将此函数放在主题的函数.php文件中。

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

然后你可以使用它:

<?php 
    if(is_page_child(100)) {
        // show image X 
    } 
?>

推荐