0

我有一个自定义的 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>' );
?>

我这样做是为了去掉ulandli标签。目前它输出这个:

<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();.

基本上我只需要能够为每个项目添加其他元素......除非我可以在回显字符串中添加按钮(带有永久链接等)?非常感谢任何帮助或建议!

如果您想知道,它目前看起来像这样:

在此处输入图像描述

我试图让每个项目看起来像这样:

在此处输入图像描述

4

1 回答 1

0

在你的 foreach 循环中尝试

get_permalink($menuParameters->ID)
于 2020-04-27T21:00:11.457 回答