How to display full Breadcrumb Path on product page in magento.?
Magento product page does not always display the full breadcrumb path on the product page and you have to add modified code to get the full breadcrumb path on product page in Magento. Follow the steps and change the code to get the desired results now
- 1. Go To the file: app/code/local/Mage/Catalog/Block/Breadcrumbs.php
- 2. Change “protected function _prepareLayout()” function from following code:
/* Preparing layout * * @return Mage_Catalog_Block_Breadcrumbs */ protected function _prepareLayout() { if ($breadcrumbsBlock = $this->getLayout()->getBlock('breadcrumbs')) { $breadcrumbsBlock->addCrumb('home', array( 'label'=>Mage::helper('catalog')->__('Home'), 'title'=>Mage::helper('catalog')->__('Go to Home Page'), 'link'=>Mage::getBaseUrl() )); // sometimes magento can't get category associated with a product $current_category = Mage::registry('current_category'); $current_product = Mage::registry('current_product'); if(!$current_category && $current_product){ $categories = $current_product->getCategoryCollection() ->addAttributeToSelect('name') ->setPageSize(1); foreach($categories as $category) { Mage::unregister('current_category'); Mage::register('current_category', $category); } } $title = array(); $path = Mage::helper('catalog')->getBreadcrumbPath(); foreach ($path as $name => $breadcrumb) { $breadcrumbsBlock->addCrumb($name, $breadcrumb); $title[] = $breadcrumb['label']; } if ($headBlock = $this->getLayout()->getBlock('head')) { $headBlock->setTitle(join($this->getTitleSeparator(), array_reverse($title))); } } return parent::_prepareLayout(); }