レイヤード ナビゲーションは、個別に読み込まれるコレクション オブジェクトを使用します。
ナビゲーション フィルターの横にある正しいカウントを確実にする方法の 1 つは、モデルをオーバーライドMage_Catalog_Model_Layer
してフィルターをその関数に追加することです。Mage_Catalog_Model_Layer::prepareProductCollection
public function prepareProductCollection($collection)
{
$collection
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
->addMinimalPrice()
->addFinalPrice()
->addTaxPercents()
->addUrlRewrite($this->getCurrentCategory()->getId())
->addAttributeToFilter('type_id', 'simple');
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
return $this;
}
これを実現するには、ローカルコード プールにモジュールを作成します。ファイルで、次のノードをノードconfig.xml
に追加しますglobal
<models>
<catalog>
<rewrite>
<layer>YourPackage_YourModule_Model_Rewrite_Layer</layer>
</rewrite>
</catalog>
</models>
モジュールで、フォルダ「Model」の下にディレクトリ「Rewrite」を追加し、その中にファイルを作成しますLayer.php
。Model/Rewrite/Layer.php
class YourPackage_YourModule_Model_Rewrite_Layer extends Mage_Catalog_Model_Layer {
}
上記の関数をこのクラスに追加し、キャッシュをクリアします。