如何在类别视图中获取和显示产品标签(在产品列出的循环中)? 我使用了代码(来自another question)并放入\ app \ design \ frontend \ ... \ template \ catalog \ product \ list.phtml:
<?php $_tags = new Mage_Tag_Block_Product_List(); ?>
并在foreach(产品列表中)显示标签:
<?php if($_tags) : ?>
<?php foreach($_tags->getTags() as $tag):?>
<span class="tag"><?=$tag->getName()?></span>
<?php endforeach; ?>
<?php endif; ?>
它无法正常工作,因为实例化$ _tags会给我错误:
在非对象中调用成员函数getItems() 第45行\ app \ code \ core \ Mage \ Tag \ Block \ Product \ List.php。
答案 0 :(得分:2)
我使用此代码,产品的标签循环显示集合中的每个产品:
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;
答案 1 :(得分: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)
或不使用,取决于你的目标