分层导航使用单独加载的集合对象。
确保导航过滤器旁边的正确计数的一种可能方法是覆盖模型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>
在您的模块中,在文件夹“模型”下添加一个目录“重写”并Layer.php
在其中创建一个文件。在创建的文件中Model/Rewrite/Layer.php
添加一个具有以下定义的类:
class YourPackage_YourModule_Model_Rewrite_Layer extends Mage_Catalog_Model_Layer {
}
将上面的函数添加到这个类中,清除缓存。