我正在尝试输出Wordpress'导航菜单项及其CSS类。
我能够获得菜单项,但是类更复杂。 css类有一个数组,但它已经在foreach()
循环中。
$menu_items = wp_get_nav_menu_items($menu->term_id);
$menu_list = '<ul id="menu-' . $menu_name . '">';
foreach ( (array) $menu_items as $key => $menu_item ) {
$title = $menu_item->title;
$url = $menu_item->url;
$classes = $menu_item->classes;
$menu_list .= '<li>';
$menu_list .= '<i class=""></i>';
$menu_list .= '<a href="' . $url . '">' . $title . '</a>';
$menu_list .= '</li>';
}
$menu_list .= '</ul>';
正如您所看到的,在foreach()
循环中,我得到$title
和$url
两个字符串。但是当我尝试通过$menu_item->classes
获取与菜单项关联的css类时,它返回一个数组,我不知道该怎么做。
因为每个菜单项都有3个css类fa fa-user fa-3x
,所以我可以使用此
$classes[0] . $classes[1] . $classes[2]
但是假设我不想要第三堂课而且我把它留空了,我得到了一个丢失的偏移错误。
我也试过在原始的foreach中做一个foreach
$menu_list .= '<li>';
foreach($classes as $class) {
$menu_list .= '<i class="'. $class .'"></i>';
}
$menu_list .= '<a href="' . $url . '">' . $title . '</a>';
$menu_list .= '</li>';
但是这会为每个菜单项返回3个单独的<i>
标签,这不是我想要的。输出看起来像这样
<i class="fa"></i>
<i class="fa-user"></i>
<i class="fa-3x"></i>
答案 0 :(得分:1)
只需使用嵌套循环,就像这样:
<?php
$menu_items = wp_get_nav_menu_items($menu->term_id);
$menu_list = '<ul id="menu-' . $menu_name . '">';
foreach ( (array) $menu_items as $key => $menu_item ) {
$title = $menu_item->title;
$url = $menu_item->url;
$classes = $menu_item->classes;
$comboClass = "";
// USING NESTED LOOP CONSTRUCT
foreach($classes as $class){
$comboClass .= $class . " "; // SEPARATE CLASS-NAME WITH A SPACE
}
$menu_list .= '<li>';
$menu_list .= '<i class="' .$comboClass . '"></i>';
$menu_list .= '<a href="' . $url . '">' . $title . '</a>';
$menu_list .= '</li>';
}
$menu_list .= '</ul>';
答案 1 :(得分:-1)
你可以嵌套循环......
foreach(...) {
... html stuff ..
echo '<div class="';
foreach($classes as $class) {
echo $class, ' ';
}
echo '">...</div>';
}