magento 产品名称移动到面包屑块

magento product name move to breadcrumbs block

作为标题我喜欢把我的产品名称移到breadcrumbs.phtml里面。以下是我目前拥有的代码。但是它returns一个"Fatal error: Call to a member function getName() on a non-object"。我们该如何解决这个问题?

<?php if($crumbs && is_array($crumbs)): ?>
<?php $_helper = $this->helper('catalog/output'); ?>
<?php $_product = $this->getProduct(); ?>

<div class="breadcrumbs">
    <div class="container">
        <div class="container-inner">
            <ul>
                <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
                    <li class="<?php echo $_crumbName ?>">
                    <?php if($_crumbInfo['link']): ?>
                        <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->escapeHtml($_crumbInfo['title']) ?>"><?php echo $this->escapeHtml($_crumbInfo['label']) ?></a>
                    <?php elseif($_crumbInfo['last']): ?>
                        <strong><?php echo $this->escapeHtml($_crumbInfo['label']) ?></strong>
                    <?php else: ?>
                        <?php echo $this->escapeHtml($_crumbInfo['label']) ?>
                    <?php endif; ?>
                    <?php if(!$_crumbInfo['last']): ?>
                        <span><i class="fa fa-angle-right"></i> </span>
                    <?php endif; ?>
                    </li>
                <?php endforeach; ?>
            </ul>

            <div>
                <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1>

            </div>

        </div>
    </div>
</div>
<?php endif; ?>

根据 magento 代码,每个页面都会调用面包屑。

在您的代码中,您已尝试调用 $this->getProduct();,它仅适用于某些区块的产品视图,不适用于面包屑。

如果你试图在每个页面调用这个面包屑,那么你会得到同样的错误。

我们需要停止调用 <?php $_product = $this->getProduct(); ?><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1>

每一页。

在面包屑中获取产品数据然后你需要调用注册表变量 Mage::registry('current_product').

详情见 Magento: How to tell if you're on a category page, or product page in .phtml file(s)

 <?php if( Mage::registry('current_product')):?>
<div>
<h1><?php echo $_helper->productAttribute(Mage::registry('current_product'), Mage::registry('current_product')->getName(), 'name') ?></h1>
</div>
<?php endif; ?>