8

How do I remove the View All link from the menu in rwd theme?

This is the current set of categories I have and how I want it to show in the menu

Category 1
-- Subcategory 1
---- Subcategory 1
-- Subcategory 2

Category 2
-- Subcategory 1

When using rwd it shows the menu like this

Category 1
--View All Category 1
-- Subcategory 1
---- View All Subcategory 1
---- Subcategory
-- Subcategory 2

Category 2
-- Subcategory 1

I've tried searching but can't find a solution to this.

  • Reid Blomquist your answer just excellent .. works like charm – mohammad aquil May 9 '16 at 15:58
22

To do this you'll first want to (if you haven't already) create a custom template directory within the RWD design package. This avoids re or overwriting your default templates that live in magento/app/design/frontend/rwd/default/template.

For the sake of example we'll create magento/app/design/frontend/rwd/custom/template

The specific template we're going to be editing is the topmenu renderer.phtml - which resides at magento/app/design/frontend/rwd/default/template/page/html/topmenu/renderer.phtml. To extend this file properly, create a matching directory structure within the magento/app/design/frontend/rwd/custom/template directory we just created - you should end up with a directory that looks like this: magento/app/design/frontend/rwd/custom/template/page/html/topmenu

Once your topmenu template directory has been created, copy the renderer.phtml file from rwd/default/template/page/html/topmenu into the rwd/custom/template/page/html/topmenu directory you just created.

This file should contain the following code at ~ lines 62 - 71:

    if (!empty($_hasChildren)) {
    $html .= '<ul class="level'. $childLevel .'">';
    $html .=     '<li class="level'. $nextChildLevel .'">';
    $html .=         '<a class="level'. $nextChildLevel .'" href="'. $child->getUrl() .'">';
    $html .=             $this->__('View All ') . $this->escapeHtml($this->__($child->getName()));
    $html .=         '</a>';
    $html .=     '</li>';
    $html .=     $this->render($child, $childrenWrapClass);
    $html .= '</ul>';
}

In your copied file, you'll want to remove or comment out the mid-section so that you're left with:

    if (!empty($_hasChildren)) {
    $html .= '<ul class="level'. $childLevel .'">';
    $html .=     $this->render($child, $childrenWrapClass);
    $html .= '</ul>';
}

Once you've saved your file you can go into adminhtml -> System -> Configuration -> General -> Design -> Themes and set the field "Templates" to the value "custom" -> Save Config and then clear cache.

You should now no longer see the "View All XXX" portion of your sites navigation!

|improve this answer|||||
  • This fixed the issue. I came across a similar post but that didn't explain about creating custom directories or clearing the cache. – Matt Aug 8 '14 at 14:30
-2

You can also add this CSS somewhere (like styles.css)

.view-all {
    display: none;
}
|improve this answer|||||
  • hiding something with css doesn't actually remove it, it just hides it – Haim Oct 26 '17 at 13:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.