我有一个自定义的 wp_nav_menu 导航,它仅从一个回显行输出子页面项目的整个列表......
<?php
$menuParameters = array(
'theme_location' =>'primary',
'menu_id' => 'main-menu',
'before' => '<div class="service-boxes-item"><h2>',
'after' => '</h2></div>',
'container' => false,
'echo' => false,
'depth' => 0,
'walker'=>new Selective_Walker()
);
echo strip_tags(wp_nav_menu( $menuParameters ), '<a><div><h2>' );
?>
我这样做是为了去掉ul
andli
标签。目前它输出这个:
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
这是完美的,正是我想要的。
你会看到我使用了一个自定义的walker,这是为了让我只显示当前页面的子菜单项。
当我需要向每个服务盒项目添加其他元素时,问题就出现了。
我已经设法添加标签和类,例如 H1 和 Div 标签......但现在,我想在每个服务框项目旁边的每个页面标题下方添加一个按钮。
我相信最好的选择是将它添加到循环中,而不是将这些项目添加到回显字符串中,我可以正确添加它们,从而为每个项目提供更多灵活性。
我以前使用页面和发布循环完成了此操作,但我无法弄清楚如何使用 wp_nav_menu 执行此操作。
我能想到的唯一方法是这样的......
<?php
$menuParameters = array(
'theme_location' =>'primary',
'menu_id' => 'main-menu',
'container' => false,
'echo' => false,
'depth' => 0,
'walker'=>new Selective_Walker()
);
$pages = wp_nav_menu($menuParameters); ?>
<?php foreach( $pages as $menuParameters ) { ?>
<div class="service-boxes-item">
<h2>
<a href="#">page title</a>
</h2>
</div>
<button class="button button-service" onclick="window.location.href = '<?php echo get_permalink($page->ID); ?>';">More Info</button>
<?php } ?>
但正如你所看到的,这显然行不通,因为代码非常错误,并且有各种各样的问题。我正在将页面/帖子循环与导航输出混合。
我陷入了真正的混乱,因为我不知道如何使用导航菜单处理诸如永久链接之类的其他内容,因为它们似乎是自动内置的,并且可能无法从 foreach 循环中使用get_permalink();
.
基本上我只需要能够为每个项目添加其他元素......除非我可以在回显字符串中添加按钮(带有永久链接等)?非常感谢任何帮助或建议!
如果您想知道,它目前看起来像这样:
我试图让每个项目看起来像这样: