通过活动父菜单项获取正文类

Posted

技术标签:

【中文标题】通过活动父菜单项获取正文类【英文标题】:get body class by active parent menu item 【发布时间】:2011-09-01 20:25:01 【问题描述】:

示例:

菜单 1 菜单项 1.1 菜单项 1.2 菜单项 1.2.1 菜单项 2 菜单项 3

我现在有:

<?php $active = JFactory::getApplication()->getMenu()->getActive();?>
<body class="<?php echo $active->alias; ?> ">

所以我从活动菜单项加载正文类。我希望保持不变。我需要的是在例如 menuitem 1 处于活动状态时隐藏某些菜单项。所以当这种情况发生时,我需要为 menuitem 2 分配一个类。

这样,当我向下导航 1.1 时,它会隐藏菜单项。

找到了解决方案:

<?php
$menu =& JSite::getMenu();
$active = $menu->getActive();
$class = extractpath($active->route);
function extractpath($string)
preg_match('/^[a-zA-Z0-9\-_]+/',$string,$m);   
return $m[0];


?>
  <body<?php if ($class) echo ' class="' . $class . '"'; ?>>

【问题讨论】:

【参考方案1】:

获取父级的ID - $menu->getActive()->parent

获取父级的Title - $menu->getItem([id])->name

【讨论】:

我不想让它对 body 类做任何事情。请参阅已编辑的原始帖子。但也许它会起作用,我来测试一下吧!

以上是关于通过活动父菜单项获取正文类的主要内容,如果未能解决你的问题,请参考以下文章

在引导下拉菜单中悬停时显示活动的父菜单项

如何将“活动”类添加到 WordPress 中的当前菜单项

如何获取所选列表视图项中的id以打开上下文菜单并通过下一个活动来实现目标。

如何在单击的菜单项上将活动类附加到现有类?

需要将“活动”类添加到自定义 WordPress 导航菜单

php Wordpress菜单/导航----将.active类添加到活动菜单项---- Bootstrap Nav Walker