3

私が使用するこれをアーカイブするために、 catalog/category/view.phtmlにカスタム カテゴリをロードしようとしています。

<?php
$_category = Mage::getModel('catalog/category')->load(47);
$_productCollection = $_category->getProductCollection();
if($_productCollection->count()) {
    foreach( $_productCollection as $_product ):
        echo $_product->getProductUrl();
        echo $this->getPriceHtml($_product, true);
        echo $this->htmlEscape($_product->getName());
    endforeach;
}
?>

たとえば、URL を読み込むことができます。今度は、色などのカスタム属性を読み込みたいと思います。

$_product->getResource()->getAttribute('color')->getFrontend()->getValue($_product)

このコードは機能しません。カラー属性がカテゴリ リストに表示されるように設定されており、このカテゴリのアイテムにはこのフィールドが入力されていることは 100% 確信しています。このコードはlist.htmlで機能するため、これを知っています。

私が間違っていることは何ですか?私は1.7.0.2で作業しています。

期待される結果は、カスタム カテゴリのすべての COLOR 属性を

カタログ/カテゴリ/view.phtml

4

3 に答える 3

3

答えを見つけたなんて信じられない。通常のカテゴリ リストに含まれていないため、コレクションにカスタム属性を追加する必要があります。

コードは次のとおりです。

$_productCollection = $_category->getProductCollection()
->addAttributeToSelect('color');
于 2013-07-05T17:59:47.073 に答える
1
  1. この属性をリスト/フロントエンドで表示する

  2. 再インデックスの実行

  3. foreach( $_productCollection as $_product ): echo $_product->getProductUrl();

このコード では、特定の属性値が表示されるvar_dump $_product->getData(); かどうかを確認します。var_dump

ノート:

$_product->getResource()->getAttribute('color')->getFrontend()->getValue($_product)

はあまり効率的な呼び出し方法ではありません。

于 2013-07-06T02:28:57.100 に答える