【问题标题】:Get product's tags on category page in Magento?在 Magento 的类别页面上获取产品标签?
【发布时间】:2012-07-31 11:48:06
【问题描述】:

如何在类别视图中获取和显示产品标签(在产品列表的循环中)? 我使用代码(来自another question)并放入\app\design\frontend\...\template\catalog\product\list.phtml:

<?php $_tags = new Mage_Tag_Block_Product_List(); ?>

并在foreach(产品listing的地方)显示标签:

<?php if($_tags) : ?>
    <?php foreach($_tags->getTags() as $tag):?>
        <span class="tag"><?=$tag->getName()?></span>
    <?php endforeach; ?>
<?php endif; ?>

而且它不起作用,因为实例化 $_tags 给了我错误:

在非对象上调用成员函数 getItems() \app\code\core\Mage\Tag\Block\Product\List.php 在第 45 行。

【问题讨论】:

  • 这个块应该在产品视图中呈现,因为它希望产品对象在注册表中 (Mage::registry('current_product'))。
  • 我应该如何更改此代码以在每个产品的类别页面上显示产品标签?我必须初始化什么?我尝试将此代码放入循环&lt;?php foreach ($_productCollection as $_product): ?&gt;

标签: magento tags categories product


【解决方案1】:

我使用了此代码,并且产品标签在集合中的每个产品的循环中显示:

foreach ($_productCollection as $_product):
    $model=Mage::getModel('tag/tag');
    $tags= $model->getResourceCollection()
        ->addPopularity()
        ->addStatusFilter($model->getApprovedStatus())
        ->addProductFilter($_product->getId())
        ->setFlag('relation', true)
        ->addStoreFilter(Mage::app()->getStore()->getId())
        ->setActiveFilter()
        ->load();

    if(isset($tags) && !empty($tags)):
        foreach($tags as $tag):
            echo '<span class="tag">'.$tag->getName().'</span>';
        endforeach;
    endif;
endforeach;

【讨论】:

    【解决方案2】:

    我认为这是一个很好的起点:

    要查看您可以使用哪些产品具有特定标签

    $tagId = 9;  
    $collection = Mage::getResourceModel('tag/product_collection')->addTagFilter($tagId);
    ?>
        <ul class=\"tags-list tag_overview\">
            <?php foreach ($collection as $_tag): ?>
                <li><a href=\"<?php echo $_tag->getTaggedProductsUrl() ?>\" style=\"font-size:<?php echo $_tag->getRatio()*70+75 ?>%;\"><?php echo $this->htmlEscape($_tag->getName()) ?></a></li>
            <?php endforeach; ?>
        </ul>
    

    您是否可以使用addTagFilter($tagId),取决于您的目标

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      • 2016-06-30
      • 2014-08-20
      • 1970-01-01
      • 2013-02-24
      • 2014-11-06
      相关资源
      最近更新 更多