如果页面别名与菜单别名匹配(在 foreach 中),则将菜单项的 class 更改为活动状态

Change class of a menuitem to active if page alias matches menu alias (in a foreach)

我得到了一个使用 foreach 显示的简单侧边菜单:

<?
    if($contentcr[0]['catid'] == '9'){

        foreach($pagecr as $page){
            $landingnospace = str_replace(' ', '_', $page['alias']);
            $title = $page['title'];
            if($title != '') {
            $contentje .= '<li><a href="http://www.website.nl/_extern/website1/'.$landingnospace.'.html">'.$title.'</a></li>';  
            }
        }
        echo $contentje;
    }
    else{
        echo 'Alternatief sidemenu';
    }
?>

页面的别名显示在 url using .htaccess:

DirectoryIndex
RewriteEngine  on
RewriteBase /_extern/website1/

#Indexes uitzetten
Options -Indexes

#Website1
RewriteRule     ^(.*).html content.php?alias= [L]

我目前在页面上使用两个查询,一个用于 db_content,一个用于 db_categories

db_content:

//  content
    $content        = "SELECT * FROM `db_content` WHERE alias = '".$_GET['alias']."' ";
    $contentcon         = $conn->query($content);
    $contentcr          = array();
    while ($contentcr[]     = $contentcon->fetch_array());

db_categories

//  Pages
$page               = "SELECT con.title, con.alias, con.images, con.introtext
                       FROM db_content con
                       LEFT JOIN db_categories cat ON con.catid = cat.id
                       AND cat.alias = '".$_GET['alias']."' WHERE con.state = 1 ORDER BY `ordering` DESC"; 
$pagecon            = $conn->query($page);
$pagecr             = array();
while ($pagecr[]    = $pagecon->fetch_array());

那么我怎样才能将 foreach 中的结果与 url 中的别名进行比较,如果它们匹配,则将 class: current-menu-item 添加到列表标记中?

您可以引入一个 $class 变量并查看当前 $page["alias"] 是否等于 $_GET["alias"]。如果是,请应用 class current-menu-item,如果不是,请留空。

<?
    if($contentcr[0]['catid'] == '9'){

        $alias = $_GET["alias"];

        foreach($pagecr as $page){
            $landingnospace = str_replace(' ', '_', $page['alias']);
            $title = $page['title'];
            if($title != '') {
                // magic happens here
                $class = ($page["alias"] == $alias)?"current-menu-item":"";
                $contentje .= '<li><a class="'.$class.'" href="http://www.website.nl/_extern/website1/'.$landingnospace.'.html">'.$title.'</a></li>';  
            }
        }
        echo $contentje;
    }
    else{
        echo 'Alternatief sidemenu';
    }
?>