我阅读了有关如何迭代菜单项的wordpress代码文档,然后在index.php中编写了此代码:
<?php
$menu_name = 'top_menu';
$array_menu = wp_get_nav_menu_items($menu_name);
foreach ((array)$array_menu as $mol) ;
{
echo $mol;
}
?>
但是它不起作用。而且什么也没有返回。强制转换为数组没有帮助。
我需要一个一个地回显项目菜单标题。没有任何html列表标签。
答案 0 :(得分:1)
$ navItem 是一个对象,因此您不能只回显它,而是尝试回显其属性,如下所示:
foreach ($array_menu as $navItem ) {
echo '<li><a href="'.$navItem->url.'" title="'.$navItem->title.'">'.$navItem->title.'</a></li>';
}
答案 1 :(得分:0)
这可能会有所帮助:
<?php
function get_menu_items_by_registered_slug($menu_slug) {
$menu_items = array();
if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_slug ] ) ) {
$menu = get_term( $locations[ $menu_slug ] );
$menu_items = wp_get_nav_menu_items($menu->term_id);
}
return $menu_items;
}
$show_menus = [];
$menus = get_menu_items_by_registered_slug('primary');
foreach( $menus as $menu ) {
$show_menus[] = $menu->title;
}
echo '<pre>';
print_r($show_menus);
?>