I am trying to add class to the top menu item in Magento. I was able to add class to the <li>
tag by overriding the Topmenu.php file. Now I want to add a class to the <a>
tag too. Below is the Topmenu.php content. I have added the class nav-item
to the <li>
tag and it works. Similarly, I want to add a class to the <a>
tag under the <li>
<?php
namespace Ecommerce\Menu\Block\Html;
class Topmenu extends \Magento\Theme\Block\Html\Topmenu
{
protected function _getMenuItemClasses(\Magento\Framework\Data\Tree\Node $item)
{
$classes = [];
$classes[] = 'level' . $item->getLevel();
$classes[] = $item->getPositionClass();
if ($item->getIsFirst()) {
$classes[] = 'first';
}
if ($item->getIsActive()) {
$classes[] = 'active';
} elseif ($item->getHasActive()) {
$classes[] = 'has-active';
}
if ($item->getIsLast()) {
$classes[] = 'last';
}
if ($item->getClass()) {
$classes[] = $item->getClass();
}
if ($item->hasChildren()) {
$classes[] = 'parent';
}
$classes[] = 'nav-item';
return $classes;
}
}