我一直在研究一个查询,它会显示多个孙子页面的列表,并且每个页面都会显示另一个子页面。我认为这将是3& 4级深吗?就页面而言,我现在所拥有的是:
父
- 孙子1
---孙子1孩子1
- 孙子2
---孙子2孩子1
- 孙子1
---孙子1孩子1
- 孙子2
---孙子2孩子1
- 孙子1
---孙子1孩子1
- 孙子2
---孙子2孩子1
然后基本上当你在一个孩子,孙子或granchild孩子时,它会显示一个孩子的所有页面/链接的菜单列表(但不是菜单中的孩子本身)。
我发现父母和孩子有多少东西,甚至是孙子的东西,但除了孙子之外什么都没有用?关于如何实现这一目标的任何想法或参考?
答案 0 :(得分:0)
有两种方法可以做到这一点:
首先最简单,只需用CSS隐藏顶层菜单,只显示选中的菜单。
我自己有点运气http://www.ordinarycoder.com/wordpress-wp_nav_menu-show-a-submenu-only/
如果你能在这里找到任何有用的东西,那就有一个重复的问题:WordPress wp_nav_menu specific sub menu only
答案 1 :(得分:0)
尝试以下参考资料后我没有运气:http://codex.wordpress.org/Function_Reference/wp_list_pages#List_Sub-Pages
我从另一个资源中找到的壁橱里的东西依赖于页面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使用相同的模板,示例模板 - 绿色,都会显示正确的导航菜单,具体取决于列出的父页面。此外,如果您在子页面或该子项内的子页面,无论所选导航菜单显示多深。相同的代码将用于多个模板,如模板蓝色,模板红色等。