如何迭代WordPress中的菜单项?

时间:2018-10-02 06:06:04

标签: php wordpress wordpress-theming

我阅读了有关如何迭代菜单项的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列表标签。

2 个答案:

答案 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);
?>