在主页中显示所有产品标签
题
我无法理解如何在主页中显示所有标签?
有一个可行的解决方案可以使用此代码在产品页面中显示产品的标签:
<?php
// instantiate the tags class for products
$_tags = new Mage_Tag_Block_Product_List();
?>
<!-- ProductTags: -->
<ul class="product-tags">
<?php foreach($_tags->getTags() as $tag):?>
<li><a href="<?=$tag->getTaggedProductsUrl()?>"><?=$tag->getName()?></a></li>
<?php endforeach;?>
</ul>
但它在主页中不起作用。
我得到错误
致命错误:调用成员函数
getItems()
在app/code/core/Mage/Tag/Block/Product/List中的非对象上。php在第45行
我该怎么办?
解决方案
要以编程方式获得流行的标签,请使用以下代码
$tagmodel = Mage::getModel('tag/tag');
$collection = $tagmodel->getResourceCollection()
->addPopularity()
->load();
foreach($collection as $tag)
{
//code here
}
其他提示
将此添加到hopepage的内容部分:
{{block type="tag/all" name="tags_all" template="tag/popular.phtml"}}
更新后的
$tag_model= Mage::getModel('tag/tag');
$tag_collection= $tag_model->getResourceCollection()
->addPopularity()
->addStatusFilter($model->getApprovedStatus())
->addProductFilter($ProductId)
->setFlag('relation', true)
->addStoreFilter(Mage::app()->getStore()->getId())
->setActiveFilter()
->load();
$mytags=$tag_collection->getItems();
foreach ($mytags as $tag) {
echo $tag->getTaggedProductsUrl();
echo $tag->getName();
}
我给出这个答案,因为其他答案不适合我。我通过以下方式存档:
<?php $tagblockobj = Mage::getBlockSingleton('tag/all');?>
<?php if( sizeof($tagblockobj ->getTags()) > 0 ): ?>
<?php foreach($tagblockobj ->getTags() as $tag):?>
<a href="<?php echo $tag->getTaggedProductsUrl()?>" class="tags-b"><?php echo $tag->getName()?></a>
<?php endforeach;?>
<?php else: ?>
<p class="note-msg"><?php echo $this->__('There are no tags available.') ?></p>
<?php endif; ?>