你肯定是在正确的轨道上,但是wp_nav_menu 将输出一个包含大量容器和类名的菜单;为了在语义UI方面保持它的语义,如果您自己构建结构,您将得到很好的帮助。
在菜单管理器中获取已注册菜单的名称。检查register_nav_menu 在您的functions.php 如果你不确定。例如,这就是《十三三》主题中的内容:
register_nav_menu( \'primary\', __( \'Navigation Menu\', \'twentythirteen\' ) );
 (在你的情况下,可能是
about-menu.)
您可以使用下面的代码片段通过菜单名称生成自定义菜单(我们将能够获得所有详细信息(例如位置、id等)自动注册菜单的)
<?php
    $menu_name = \'primary\'; // this is the registered menu name
    if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) :
        $menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
        $menu_items = wp_get_nav_menu_items($menu->term_id);
        echo \'<div class="ui secondary vertical pointing menu">\';
            foreach ( (array) $menu_items as $key => $menu_item ) :
                $title = $menu_item->title;
                $class = $menu_item->classes; // get array with class names
                if ( get_the_ID() == $menu_item->object_id ) { // check for current page
                    echo \'<a class="item active">\';
                } else {
                    echo \'<a class="item">\';
                }
                    echo \'<i class="item \' . implode(\' \', $class) . \'"></i>\' . $title;
                echo \'</a>\';
            endforeach;
        echo \'</div>\';
    else :
        echo \'<div class="ui error message"><p>Menu "\' . $menu_name . \'" not defined.</p></div>\';
    endif;
?>
 仔细看看上面的代码。我们正在遍历定义菜单的菜单项。确保在菜单管理器中添加类名(用于图标)。插入类名(用空格分隔多个类名)是可选的,默认情况下是隐藏的;您可以通过激活输入字段
Screen Options 在顶部。
Update: 您还可以输出带有页面链接的菜单:
<?php
  $menu_name = \'primary\'; // this is the registered menu name
  if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) :
    $menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
    $menu_items = wp_get_nav_menu_items($menu->term_id);
    echo \'<div class="ui vertical menu">\';
      foreach ( (array) $menu_items as $key => $menu_item ) :
        $title = $menu_item->title;
        $url = $menu_item->url;
        $class = $menu_item->classes; // get array with class names
        if ( get_the_ID() == $menu_item->object_id ) { // check for current page
          echo \'<a class="item active" href="\' . $url . \'">\';
        } else {
          echo \'<a class="item" href="\' . $url . \'">\';
        }
          echo \'<i class="item \' . implode(\' \', $class) . \'"></i>\' . $title;
        echo \'</a>\';
      endforeach;
    echo \'</div>\';
  else :
    echo \'<div class="ui error message"><p>Menu "\' . $menu_name . \'" not defined.</p></div>\';
  endif;
?>