Wordpress菜单问题 - 首先覆盖第二个菜单

时间:2016-02-22 19:15:07

标签: wordpress menu

我将html网站转换为wordpress并且菜单出现问题。我已经使用模板中的php代码创建了单独的菜单位置

<div id="NavItems">
            <?php
                $args = array(
                    'theme-location' => 'primary', 
                );
                wp_nav_menu($args);
            ?>
        </div>

<div class="footerNav">
                <h3>Services</h3>
                <?php
                    $args = array(
                        'theme-location' => 'footerServ', 
                    );
                    wp_nav_menu($args);
                ?>
            </div>

并且functions.php有这段代码

function register_my_menus() {
    register_nav_menus(array(
        'primary' => __('Primary Menu'),
        'footerServ' => __('Footer Services'),
        'footerWork' => __('Footer Our Work'),
        'footerLegal' => __('Footer Legal'),
        'footerInc' => __('Footer Inc'),
    ));
}
add_action( 'init', 'register_my_menus' );

主菜单配置如下所示 - Main Menu Wordpress Config

页脚菜单配置看起来像这样 - FooterMenu Wordpress Config

生成的html在主菜单中显示如下

<nav role="navigation" id="MainNav" class="group">
...
<div id="NavItems">
    <div class="menu-footer-services-container">
        <ul id="menu-footer-services" class="menu">
            <li id="menu-item-95" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-95">
                <a href="http://localhost/wordpress/services/mold-manufacturing/">Mold Manufacturing</a>
            </li>
            <li id="menu-item-96" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-96">
                <a href="http://localhost/wordpress/services/injection-molding/">Injection Molding</a>
            </li>
            <li id="menu-item-94" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-94">
                <a href="http://localhost/wordpress/services/thermoforming/">Thermoforming</a>
            </li>
            <li id="menu-item-93" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-93">
                <a href="http://localhost/wordpress/services/plastic-fabrication/">Plastic Fabrication</a>
            </li>
            <li id="menu-item-91" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-91">
                <a href="http://localhost/wordpress/services/custom-design/">Custom Design</a>
            </li>
            <li id="menu-item-92" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-92">
                <a href="http://localhost/wordpress/services/assembly/">Assembly</a>
            </li>
        </ul>
    </div>          
</div>
...

页脚菜单具有相同的类和ul。

我已经完成了我能想到的一切,并且几乎可以肯定在wordpress中配置是正确的,并且我的代码没有发现任何问题。

总之,尽管设置了不同的位置和名称,我的主菜单仍会被页脚菜单覆盖。 wordpress仪表板具有我想要的正确配置。然而,结果显示我的主菜单有页脚菜单类,而不是&#39;家庭&#39; ...它显示&#39;模具制造&#39; ....

我正在关注此视频(在评论中)设置导航,并完全按照他的操作行事。

它几乎就像wordpress只允许我显示1个菜单,尽管允许我配置几个。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

<div id="NavItems">
        <?php
            $args = array(
                'theme-location' => 'primary', 
            );
            wp_nav_menu($args);
        ?>
    </div>

看起来问题出现在&#39;主题位置&#39;,如果更改为&#39; theme_location&#39;代替。但是我会坚持自己的观点,因为需要更多时间才能将其更改为同等功能。 如果有人有兴趣,解决方法看起来像这样

<div id="NavItems">
            <ul>
                <?php  
                    $servMenu = wp_get_nav_menu_items('(wordpress number for your menu');
                    foreach ($servMenu as $item) {
                        $pages = get_pages();
                        $class = "";
                        foreach ($pages as $page) {
                            if ($page->post_title == $item->title) {
                                if (is_page($page->ID)) {
                                    $class = "current-menu-item";
                                }
                                break;
                            }
                        } ?>
                        <li class="<?php echo $class; ?>">
                            <a href="<?php echo $item->url; ?>">
                                <?php echo $item->title; ?>
                            </a>
                        </li>
                    <?php }
                ?>
            </ul>
        </div>

答案 1 :(得分:0)

在这样的args中使用menu_class,它将作为ul类菜单。

<div id="NavItems">
        <?php
            $args = array(
                'theme-location' => 'primary',
                'menu_class' => 'primary-class',                    
            );
            wp_nav_menu($args);
        ?>
    </div>

<div class="footerNav">
            <h3>Services</h3>
            <?php
                $args = array(
                    'theme-location' => 'footerServ', 
                    'menu_class' => 'footer-class',
                );
                wp_nav_menu($args);
            ?>
        </div>