gpt4 book ai didi

magento - 在 Magento 的各个产品页面上制作一致的面包屑?

转载 作者:行者123 更新时间:2023-12-04 01:36:49 25 4
gpt4 key购买 nike

在 Magento 中,我们现在拥有的是单个产品页面上的面包屑总是根据用户到达页面的方式而变化。例如,如果用户从顶级类别一直点击到子类别,然后再点击产品,则面包屑将类似于“ 首页>>顶级类别>>子类别>>产品”。

但是,如果用户直接到达产品页面,例如来自 Google 查询,则面包屑将只是“ Home >> Product ”。像这样是不酷的。

即使用户从谷歌到达页面,通过在面包屑中添加类别肯定会改善用户体验。而且它肯定会增加每次访问的 PV,因为用户可能会点击面包屑中的父类别。

那么有什么方法可以让它保持一致并始终在产品页面上显示类别路径?

我的想法是编辑 page/html/breadcrumbs.phtml 但我不知道如何仅在产品页面上向面包屑添加类别。

任何帮助,将不胜感激!

=======================================

编辑:总之,无论用户如何到达产品页面,我都希望类别出现在产品页面的面包屑中。不管是哪个类别,只要类别在那里。

有人知道吗?这有那么难吗?

在我的脑海中,我需要编辑面包屑模板并在其中注入(inject)类别(如果没有的话)并且它是产品页面......但我不知道怎么做,我似乎做不到在任何地方找到任何相关的解决方案......

最佳答案

用这个替换“app/code/core/Mage/Page/Block/Html/Breadcrumbs.php”中的_toHtml()函数。

protected function _toHtml() {             

$cat_id = "";

if (Mage::registry('current_product')) {
$product_id = Mage::registry('current_product')->getId();
$obj = Mage::getModel('catalog/product');
$_product = $obj->load($product_id); // Enter your Product Id in $product_id

if ($product_id) {
$categoryIds = $_product->getCategoryIds();
$cat_id = $categoryIds[0];
}

$category = Mage::getModel('catalog/category')->load($cat_id);
$cat_name = $category->getName();
$cat_url = $this->getBaseUrl().$category->getUrlPath();
}

if (is_array($this->_crumbs)) {
reset($this->_crumbs);
$this->_crumbs[key($this->_crumbs)]['first'] = true;
end($this->_crumbs);
$this->_crumbs[key($this->_crumbs)]['last'] = true;
}

if($cat_id) {
$this->_crumbs['category'.$cat_id] = array('label'=>$cat_name, 'title'=>'', 'link'=>$cat_url,'first'=>'','last'=>'','readonly'=>'');
ksort($this->_crumbs);
$home = $this->_crumbs['home'];
unset($this->_crumbs['home']);
array_unshift($this->_crumbs,$home);
}

$this->assign('crumbs', $this->_crumbs);
return parent::_toHtml();
}

关于magento - 在 Magento 的各个产品页面上制作一致的面包屑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12417499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com