我们使用此Magento代码来获取要在Bookstore部分中显示的选择2的出版物列表。
$collection = Mage::getModel('catalog/category')->getCollection();
$collection->addAttributeToSelect('url_key')
->addAttributeToSelect('name')
->addAttributeToSelect('id')
->addAttributeToSelect('description')
->addAttributeToSelect('is_anchor')
->addAttributeToFilter('is_active', 1)
->joinUrlRewrite()
->load();
如何添加要选择的属性以使其不包含已设置的发布 “不单独展示”?
如果我加上这个:
->addAttributeToFilter('visibility', 4) // Only catalog, search visiblity
代码失败,并显示消息“无效的属性名称:visiblity”
答案 0 :(得分:7)
可见性是产品属性,而不是类别属性。要获得仅具有4的可见性的产品,您需要获取产品集合并遍历它以获得明确的类别列表:
$categories = array();
$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('visibility', 4);
foreach($products as $product){
foreach($product->getCategoryIds() as $cat){
$categories[] = $cat;
}
}
$categories = array_values(array_unique($categories));
现在,使用我们唯一的类别列表填充$categories
数组,我们只能加载这些类别:
$cat = Mage::getModel('catalog/category')->getCollection()->addIdFilter($categories);