我是Wordpress的新手,并为我的主导航菜单编写自定义结构,因为我需要能够将列放在子菜单div中。但是,我的代码无效:
<div class="menu-menu-1-container">
<ul id="menu-menu-1" class="menu">
<?php
$menuname = wp_get_nav_menu_object("Menu 1" );
$menu_name = $menuname->name;
$locations = get_nav_menu_locations();
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
$menuitems = wp_get_nav_menu_items( $menu->term_id, array( 'order' => 'DESC' ) );
$count = 0;
$submenu = false;
foreach( $menuitems as $item ):
// set up title and url
$title = $item->title;
$link = $item->url;
// item does not have a parent so menu_item_parent equals 0 (false)
if ( !$item->menu_item_parent ):
// save this id for later comparison with sub-menu items
$parent_id = $item->ID;
?>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children">
<a href="<?php echo $link; ?>"><?php echo $title; ?></a>
<?php
endif;
if ( $parent_id == $item->menu_item_parent ):
if ( !$submenu ): $submenu = true; ?>
<ul class="sub-menu">
<?php endif; ?>
<li class="menu-item menu-item-type-post_type menu-item-object-page">
<a href="<?php echo $link; ?>"><?php echo $title; ?></a>
</li>
<?php if ( $menuitems[ $count + 1 ]->menu_item_parent != $parent_id && $submenu ): ?>
</ul>
<?php
$submenu = false; endif;
endif;
?>
<?php if ( $menuitems[ $count + 1 ]->menu_item_parent != $parent_id ): ?>
</li>
<?php
$submenu = false; endif;
$count++; endforeach;
?>
</ul>
</div>
目前根本没有显示任何菜单,我检查了我是否正确拼写了菜单名称并且我做了。有人能看出我做错了吗?
答案 0 :(得分:0)
WordPress对其菜单进行简单查询。
<?php
wp_nav_menu(
array(
'theme_location' => 'primary',
'menu_id' => 'primary-menu'
)
);
?>
您可以从https://developer.wordpress.org/reference/functions/wp_nav_menu/了解更多信息您可以使用css和javascript轻松调整此设置。但是像@ akshay-shah那样,你可以使用nav walker类,如果你想使用像bootstrap这样的css框架。参考:https://github.com/wp-bootstrap/wp-bootstrap-navwalker