0
我正在使用此代碼嘗試在WordPress中生成自定義導航結構,但我遇到了for循環的問題。 WordPress的告訴我,$menuitems
不是數組:循環導航項目時爲foreach()提供的參數無效
<?php
$menu_name = 'main_nav';
$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'));
?>
<nav class="main-navigation col-md-8 col-sm-8">
<ul class="main-nav">
<?php
$count = 0;
$submenu = false;
foreach($menuitems as $item):
$link = $item->url;
$title = $item->title;
// 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="item">
<a href="<?php echo $link; ?>" class="title">
<?php echo $title; ?>
</a>
<?php endif; ?>
<?php if ($parent_id == $item->menu_item_parent): ?>
<?php if (!$submenu): $submenu = true; ?>
<ul class="sub-menu">
<?php endif; ?>
<li class="item">
<a href="<?php echo $link; ?>" class="title"><?php echo $title; ?></a>
</li>
<?php if ($menuitems[ $count + 1 ]->menu_item_parent != $parent_id && $submenu): ?>
</ul>
<?php $submenu = false; endif; ?>
<?php endif; ?>
<?php if ($menuitems[ $count + 1 ]->menu_item_parent != $parent_id): ?>
</li>
<?php $submenu = false; endif; ?>
<?php $count++; endforeach; ?>
</ul>
</nav>
但我得到的Warning: Invalid argument supplied for foreach()
從未來的for循環。
以下爲var_dump($locations)
,var_dump($menu)
和var_dump($menuitems)
輸出:
array(2) {
["primary"]=>
int(15)
["menu-1"]=>
int(15)
}
bool(false)
bool(false)
從功能的文件,這應該工作。你可以包含'var_dump($ locations)','var_dump($ menu)'和'var_dump($ menuitems)'的輸出' – Junaid
你爲什麼從你的問題中刪除所有的代碼?這使得這個問題毫無用處。不要破壞你的問題! –