如何在Wordpress中查询孙辈及其子孙辈

如何在Wordpress中查询孙辈及其子孙辈,wordpress,Wordpress,我一直在研究一个查询,该查询将显示ul孙辈列表页面和每个ul子页面。我想它会有3层和4层的深度?我现在拥有的页面如下: 母公司 儿童1 --孙女1 ---孙女1子女1 --孙女2 ---孙女2子1 儿童2 --孙女1 ---孙女1子女1 --孙女2 ---孙女2子1 儿童3 --孙女1 ---孙女1子女1 --孙女2 ---孙女2子1 然后,基本上,当你在一个孩子、孙子或孙子时,它会显示一个包含孩子所有页面/链接的菜单列表(而不是菜单中的孩子本身) 我在父母和孩子身上发现了多少东西,

我一直在研究一个查询,该查询将显示ul孙辈列表页面和每个ul子页面。我想它会有3层和4层的深度?我现在拥有的页面如下:

母公司

  • 儿童1
--孙女1

---孙女1子女1

--孙女2

---孙女2子1

  • 儿童2
--孙女1

---孙女1子女1

--孙女2

---孙女2子1

  • 儿童3
--孙女1

---孙女1子女1

--孙女2

---孙女2子1

然后,基本上,当你在一个孩子、孙子或孙子时,它会显示一个包含孩子所有页面/链接的菜单列表(而不是菜单中的孩子本身)


我在父母和孩子身上发现了多少东西,甚至在孙辈身上也发现了一些东西,但除了孙辈之外,什么都不管用?关于如何实现这一点,有什么想法或参考吗?

有几种方法:

首先,最简单的方法是用CSS隐藏顶部菜单,只显示选中的菜单

一点代码我自己运气不错


如果你能在这里找到任何有用的东西,还有一个重复的问题:

我在尝试了以下参考资料后运气不佳:

在“我需要做的事情”中,我从另一个资源中发现了一个秘密,它依赖于页面ID:

<?php 
$parent = 64;
$args=array(
 'child_of' => $parent
);
$pages = get_pages($args);  
if ($pages) {
  $pageids = array();
  foreach ($pages as $page) {
  $pageids[]= $page->ID;
}
wp_list_pages($args);
}
?>

虽然它会工作,我使用的模板,可以在不同的页面使用。因此,如果显示的页面是孙子或孙子的其中一个孩子,我需要显示孙子的父母(或者实际上是孩子1、孩子2或孩子3)的完整列表

经过多次尝试,我终于找到了答案。我确实回去了,决定制作导航菜单,并在我希望导航菜单出现的地方使用像这样的if语句

<?php
   if ( is_page( 'child-1' ) || in_array( 3, get_post_ancestors($post->ID) ) ) {    
     menu2_nav();
   } elseif ( is_page( 'child-2' ) || in_array( 4, get_post_ancestors($post->ID) ) ) {  
     menu3_nav();
   } else { 
   }    
 ?>


因此,无论子1或子2使用相同的模板(例如,绿色模板),都会根据列出的父页面显示正确的导航菜单。此外,如果您位于子页面上,或位于该子页面内的子页面上,则无论所选导航菜单显示的深度如何。相同的代码将用于多个模板,如蓝色模板、红色模板等。

谢谢MarZab。我正在查看你发送的内容,以及我正在尝试的其他一些东西。当我得到我想要完成的东西或者非常接近的时候,我会发布一些东西。在大多数情况下,虽然我对使用导航菜单不感兴趣,但更像是wp列表页面。尝试参考后: