我正在尝试在我网站的产品页面上添加链接,并根据产品所属的类别重定向用户。例如,我有一个类别主席,其类别ID为39 ,我有另一个类别办公桌 类别ID为52 。
现在我对上述场景的问题是,当我通过类别页面进入产品页面时,我正确地获得了上述类别ID,并且URL将是
http://example.com/chairs/wood-chair.html
但是当我尝试直接从搜索框中搜索产品并从那里移动到产品页面时,网址就变为
http://example.com/wood-chair.html
类别ID变为2 ,每个类别都会出现这种情况,当我通过搜索框进入产品页面时,它会将类别名称显示为默认类别。我该如何解决这个问题?请告诉我,如果产品页面上有任何参数没有变化,我可以根据产品所属的类别显示内容。
答案 0 :(得分:0)
您可以通过在catalog_controller_product_view
上添加观察者来强制magento设置类别:
class My_Module_Model_Observer extends Mage_Core_Model_Observer
{
public function addCategoryToBreadcrumbs(Varien_Event_Observer $observer)
{
if (Mage::registry('current_category')) {
return;
}
$product = $observer->getProduct();
$product->setDoNotUseCategoryId(false);
$categoryIds = $product->getCategoryIds();
if (count($categoryIds)) {
$categories = Mage::getModel('catalog/category')->getCollection()
->addAttributeToFilter('entity_id', $categoryIds)
->addAttributeToFilter('is_active', 1);
$categories->getSelect()->order('level DESC')->limit(1);
Mage::register('current_category', $categories->getFirstItem());
}
}
}