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.

1
  • Reid Blomquist your answer just excellent .. works like charm Commented May 9, 2016 at 15:58

2 Answers 2

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!

1
  • This fixed the issue. I came across a similar post but that didn't explain about creating custom directories or clearing the cache. Commented Aug 8, 2014 at 14:30
-2

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

.view-all { display: none; } 
1
  • hiding something with css doesn't actually remove it, it just hides it Commented Oct 26, 2017 at 13:32

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.