我在我的网站上有一个自定义菜单,我想使URL遵循树的层次结构。
当前发生的事情:
www.example.com/menu-5,这应该是输出
www.example.com/menu-2/menu-5这意味着菜单-5是菜单-2的子菜单。它已经添加到数据库中了。
/* Recursive Admin Menu */
function recursive_list_pages( $array = array(), $content_parent = 0 ){
if( !empty($array[$content_parent]) ){
/* Conditional to check if the module is parent and addClass to its ul */
$addClass = '';
if( $content_parent == 0 ){
$addClass = 'class="menu menu-level-' . $content_parent . '"';
} else if( $content_parent > 0 ){
$addClass = 'class="submenu menu-level-' . $content_parent . '"';
}
echo '<ul ' . $addClass . '>';
foreach( $array[$content_parent] as $items ){
/* Conditional to check if the module is parent and addClass, attr to its li */
$addClassli = '';
if( $content_parent == 0 ){
$addClassli = 'class="menu-item menu-item-' . $items["content_id"] . '"';
} else if( $content_parent > 0 ){
$addClassli = 'class="submenu-item submenu-item-' . $items["content_id"] . '"';
}
echo '<li ' . $addClassli . '>';
echo '<a href="' . SITE_URL . '' . $items["content_slug"] . '">';
echo $items["content_title"];
echo '</a>';
recursive_list_pages( $array, $items["content_id"] );
echo '</li>';
}
echo '</ul>';
}
}
/* Get Menu from Database */
function list_pages(){
global $db;
$sql = "SELECT * FROM hpl_content WHERE content_type='pages' ORDER BY content_sort ASC";
$query = $db->SELECT($sql);
$array = array();
if( $db->NUM_ROWS() > 0 ){
$rows = $db->FETCH_ARRAY();
foreach( $rows as $row ){ $array[$row["content_parent"]][] = $row; }
recursive_list_pages( $array );
}
},救命,
发布于 2014-05-31 10:40:59
试一试如下:
/* Recursive Admin Menu */
function recursive_list_pages( $array = array(), $content_parent = 0,$parent_slug = null){
if( !empty($array[$content_parent]) ){
/* Conditional to check if the module is parent and addClass to its ul */
$addClass = '';
if( $content_parent == 0 ){
$addClass = 'class="menu menu-level-' . $content_parent . '"';
} else if( $content_parent > 0 ){
$addClass = 'class="submenu menu-level-' . $content_parent . '"';
}
echo '<ul ' . $addClass . '>';
foreach( $array[$content_parent] as $items ){
/* Conditional to check if the module is parent and addClass, attr to its li */
$addClassli = '';
if( $content_parent == 0 ){
$addClassli = 'class="menu-item menu-item-' . $items["content_id"] . '"';
} else if( $content_parent > 0 ){
$addClassli = 'class="submenu-item submenu-item-' . $items["content_id"] . '"';
}
echo '<li ' . $addClassli . '>';
if(is_null($parent_slug)) {
echo '<a href="' . SITE_URL . $items["content_slug"] . '">';
} else {
echo '<a href="' . SITE_URL . $parent_slug . '/' . $items["content_slug"] . '">';
}
echo $items["content_title"];
echo '</a>';
recursive_list_pages( $array, $items["content_id"], $items['content_slug']);
echo '</li>';
}
echo '</ul>';
}
}如果您没有按照父id (因此结果是:父级1、父级1的第一子、父级1的第二子、父级2的第二子、父级2的第一个子级等等)排序项目,我认为您应该这样做。
但是基本上,你需要传递父母的鼻涕虫,对于孩子,链接,在他们自己的鼻涕虫之前附加父母的鼻涕虫。
https://stackoverflow.com/questions/23968196
复制相似问题