首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wp_nav_menu()显示当前页面及其深度=1的子项

wp_nav_menu()显示当前页面及其深度=1的子项
EN

Stack Overflow用户
提问于 2017-06-21 17:41:05
回答 1查看 237关注 0票数 2

这就是我想要做的。假设我有一个如下所示的菜单:

代码语言:javascript
复制
<ul>
<li><a href="#">Page #1</a>
<ul>
<li><a href="#">Sub-Page #1</a>
<ul>
<li><a href="#">Sub-Sub-Page #1</a></li>
<li><a href="#">Sub-Sub-Page #2</a></li>
</ul>
</li>
<li><a href="#">Sub-Page #2</a></li>
<li><a href="#">Sub-Page #3</a></li>
</ul>
</li>
<li><a href="#">Page #2</a></li>
<li><a href="#">Page #3</a></li>
</ul>

我想要做的是使用wp_nav_menu只显示用户当前正在查看的页面及其子项,例如,如果有人在1号子页或其中一个子项(1号或2号子页)上,生成的菜单应该如下所示:

代码语言:javascript
复制
<ul>
<li><a href="#">Sub-Page #1</a>
<ul>
<li><a href="#">Sub-Sub-Page #1</a></li>
<li><a href="#">Sub-Sub-Page #2</a></li>
</ul>
</li>
</ul>

如果用户当前在第1页上,则生成的菜单应如下所示:

代码语言:javascript
复制
<ul>
<li><a href="#">Page #1</a>
<ul>
<li><a href="#">Sub-Page #1</a></li>
<li><a href="#">Sub-Page #2</a></li>
<li><a href="#">Sub-Page #3</a></li>
</ul>
</li>
</ul> 

有没有可能通过wp_nav_menu或任何其他方式实现这样的事情?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-06-21 17:56:38

你可以通过"get_posts“来实现这样的功能。只需在查询参数中传递参数"post_parent“,您将获得所有子页面。

https://codex.wordpress.org/Template_Tags/get_posts

代码语言:javascript
复制
<ul>
  <?php global $post;
  $args = array( 'posts_per_page' => -1, 'post_parent'=> get_the_ID() );  
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
<li>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach;  ?>
</ul>

你也可以通过wp_query实现同样的目标。https://codex.wordpress.org/Class_Reference/WP_Query#Post_.26_Page_Parameters

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44672422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档