要求:我们有一堆有和没有图像的产品。我们只需要在前端显示带有图像的产品。
我做了什么:我尝试了几乎所有的SO资源,如:
Filter products without images on Magento frontend
How can I find all products without images in Magento?
Hide Products without images magento
和他们的各种组合没有运气..我认为新版Magento发生了一些变化。我使用的是1.8.1.0版本
有人能在这里点灯吗?
更新:在我的调试中,我发现了
->addAttributeToFilter('small_image', array('neq' => 'no_selection'))
真的很有效。但是分层价格过滤器中出现错误。我以为这不会提前工作。我得到的错误类似于:Magento 1.7 price filter error (Column not found: 1054 Unknown column 'e.min_price' in 'where clause') ...
根据Royw对上述问题的回答,我相信,我们需要编辑文件:Mage / Catalog / Model / Layer / Filter / price.php
答案 0 :(得分:0)
你试过这个吗?
->addAttributeToFilter('small_image', array('neq' => 'no_selection'))
答案 1 :(得分:0)
这可以使用Magento事件来完成。我为这次活动增加了一位观察员:
catalog_product_collection_load_before
添加了一个过滤器,用于在加载产品集合时删除所有没有图像的产品。观察员如下:
public function filterProductsWithoutImages($observer) {
if (isset($observer['collection'])) {
$collection = $observer['collection'];
$collection->addAttributeToFilter('small_image', array('neq' => "no_selection"));
return $this;
}
}
这里我们需要禁用“使用平面目录产品”。为此:
管理员>配置>目录>前端>使用平面目录产品“否”
由于此过滤与“平面目录产品”
的使用不兼容搜索页面中的产品计数可以正常使用。