如何将 class 添加到 wp_nav_menu() 函数

How to add class to wp_nav_menu() function

我正在开发自己的自定义 Wordpress 主题,但在处理菜单导航时遇到了问题。基本上我了解到 Wordpress 具有名为 wp_nav_menu() 的函数,其中包含例如:

<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>

但是因为我也在使用 Foundation 框架,所以菜单标签已经有了一些预构建 classes。所以我的主菜单是这样的:

<div class="top-bar" id="main-menu">
            <ul class="menu vertical medium-horizontal expanded medium-text-center" data-responsive-menu="drilldown medium-dropdown">
                <li><a href="#">Tech</a>
                </li>
                <li><a href="#">Energy</a>
                </li>
                <li><a href="#">Space</a>
                </li>
                <li ><a href="#">Medicine</a>
                </li>
                <li ><a href="#">Robotics</a>
                </li>
                <li ><a href="#">Tesla</a>
                </li>
            </ul>
        </div>

所以为了在这里安装 wp_nav_menu() 功能,我必须这样做:

<div class="top-bar" id="main-menu">
            <?php 
                $args = array(
                    'theme_location' => 'top'
                );
            ?>
            <?php wp_nav_menu($args); ?>
        </div>

但问题是因为我已经从菜单元素中删除了 class 名称和样式表,导航将不再响应!

那么我如何添加这个 Wordpress 功能来安装带有预构建 classes 的菜单?

您应该尝试阅读此类问题的文档,因为 WordPress 文档内容广泛且非常好。

https://developer.wordpress.org/reference/functions/wp_nav_menu/

要解决此问题,请在 'theme_location' => 'top' 下面添加 'menu_class' => 'menu vertical medium-horizontal expanded medium-text-center'。所以你的最终代码将是:

<div class="top-bar" id="main-menu">
        <?php 
            $args = array(
                'theme_location' => 'top',
                 'menu_class' => 'menu vertical medium-horizontal expanded medium-text-center'
            );
        ?>
        <?php wp_nav_menu($args); ?>
    </div>

尝试:

 $args = array(
        'theme_location' => 'top'
        'menu_class' => 'menu vertical medium-horizontal expanded medium-text-center',        
    );
    wp_nav_menu( $args ); 

如果你也需要数据响应菜单,你可以添加一些js。

编辑

在$args中,你也可以使用这个

'items_wrap' => '<ul class="menu vertical medium-horizontal expanded medium-text-center" data-responsive-menu="drilldown medium-dropdown">%3$s</ul>';

这里是解决方案:

wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'menu_id3' => 'primary-menu3' ) );