【发布时间】:2020-08-08 13:27:55
【问题描述】:
我有一个简单地显示当前页面的所有子页面的循环:
<?php
$args = array(
'parent' => $post->ID,
'post_type' => 'page',
'sort_order' => 'ASC'
);
$pages = get_pages($args); ?>
<?php foreach( $pages as $page ) { ?>
<div>
<p><?php echo $page->post_title; ?></p>
</div>
<?php } ?>
此页面的导航如下所示:
Parent Page
- Child page
- Child page
- Child page
- Custom Link (added in appearance > menus)
- Custom link (added in appearance > menus)
- Page which has another parent (added in appearance > menus)
上面的代码正确显示了所有直接子页面,但我希望它显示自定义链接和我添加到菜单下拉菜单中的其他页面。
我尝试使用wp_get_nav_menu_items 代替get_pages 并使用'post_type' => 'page',但我似乎无法正常工作。我可以显示所有页面的完整列表,也可以只显示直接子页面。
谁能告诉我哪里出错了?我觉得这应该是一件很容易的事情......
【问题讨论】:
-
这与你之前的问题几乎是重复的,Wordpress Loop - Show children menu dropdown instead of direct page children 你应该在那里继续讨论,而不是创建一个新问题。
-
不是真正的 CBroe,那是我的帖子,我相信您也知道,因为您对此发表了评论。我试图简化问题并再次发布。虽然您的评论很有帮助并且我很感激,但我缺乏进一步了解它的知识,所以我仍然卡住了。
-
老实说,如果您能进一步解释,将会很有帮助...如果您真的想帮忙?
-
我确实在那里继续谈话,但你没有回复,所以我简化了这个问题,因为我认为它可能一开始就太复杂了。
-
此时您不能期望通过查询页面对象来获得您的自定义链接——它们一开始就不是页面。使用 WP 的功能来呈现导航菜单是真正你应该在这里使用。从那开始 - 使用
wp_nav_menu以标准方式输出此菜单,这在 WP 中有效。作为第一步,这应该会为您提供所有所需的链接。然后,您可以通过定义自定义导航步行器来查看修改此创建的 HTML 输出以满足您的需求。
标签: php wordpress loops wp-nav-menu-item