我将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个菜单,尽管允许我配置几个。
提前感谢您的帮助。
答案 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>