0

カテゴリ ビュー (商品がリストされているループ内) で商品のタグを取得して表示するにはどうすればよいですか? コードを使用して (別の質問から)、\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 をインスタンス化するとエラーが発生するため、機能しません。

45 行目の \app\code\core\Mage\Tag\Block\Product\List.php の非オブジェクトでメンバー関数 getItems() を呼び出します。

4

2 に答える 2

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)かどうか、あなたの目標に依存します

于 2012-12-12T16:01:08.253 に答える
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;
于 2012-08-02T09:26:10.917 に答える