隐藏某些Magento属性过滤器

隐藏某些Magento属性过滤器,magento,filter,Magento,Filter,我有几行PHP代码可以防止某些属性过滤器显示在分层导航块中(即价格和类别)。这样我就需要添加所有我不想手动显示的过滤器,这需要花费很多时间,而且不是最好的解决方案 我想要的是显示过滤器属性“Price”和“Category”,如果过滤器名称不同,则根本不显示该过滤器。这样,价格和类别过滤器将始终显示,而其他过滤器将隐藏。我不必手动添加我不想显示在列表中的所有过滤器 我的问题是,PHP代码中需要做哪些更改才能按照我刚才描述的方式工作 <?php $_filters = $this-&

我有几行PHP代码可以防止某些属性过滤器显示在分层导航块中(即价格和类别)。这样我就需要添加所有我不想手动显示的过滤器,这需要花费很多时间,而且不是最好的解决方案

我想要的是显示过滤器属性“Price”和“Category”,如果过滤器名称不同,则根本不显示该过滤器。这样,价格和类别过滤器将始终显示,而其他过滤器将隐藏。我不必手动添加我不想显示在列表中的所有过滤器

我的问题是,PHP代码中需要做哪些更改才能按照我刚才描述的方式工作

    <?php $_filters = $this->getFilters() ?>
    <?php foreach ($_filters as $_filter): ?>
    <?php if($_filter->getItemsCount()): ?>
    <?php if($_filter->getName() != "Price" AND $_filter->getName() != "Category"): ?>
    <dt><?php echo $this->__($_filter->getName()) ?></dt>
    <dd><?php echo $_filter->getHtml() ?></dd>
    <?php endif; ?>
    <?php endif; ?>
    <?php endforeach; ?>

啊,我明白了。有趣的是,昨天我在做一件几乎相同的事情,这对我来说很有效(我的意思是对IF语句的修改)



希望它也能对你有用。

啊,我明白了。有趣的是,昨天我在做一件几乎相同的事情,这对我来说很有效(我的意思是对IF语句的修改)



希望它也能为您工作。

您是否希望为某些类别显示一些过滤器,而不是其他类别?你的问题的措辞听起来像是你只想把价格和类别作为可过滤的分层属性……在这种情况下,你只需通过目录->属性->管理属性将所有其他属性的“在分层导航中使用”设置为“否”即可在主产品类别页面上显示所有子类别的过滤器。这样我就得到了一个我不想要的过滤器的巨大列表。对于这些主要的分类页面,我只想显示“价格”和“分类”过滤器,否则过滤器就乱七八糟了。没有Magento选项(在某些页面上隐藏某些筛选器)。是否希望为某些类别显示某些筛选器,而不为其他类别显示?你的问题的措辞听起来像是你只想把价格和类别作为可过滤的分层属性……在这种情况下,你只需通过目录->属性->管理属性将所有其他属性的“在分层导航中使用”设置为“否”即可在主产品类别页面上显示所有子类别的过滤器。这样我就得到了一个我不想要的过滤器的巨大列表。对于这些主要的分类页面,我只想显示“价格”和“分类”过滤器,否则过滤器就乱七八糟了。没有Magento选项(在某些页面上隐藏某些过滤器)。感谢您的输入!这段代码只是为我隐藏了过滤器的“价格”和“类别”。我想找到一种只显示这两个过滤器并隐藏所有其他过滤器的方法。啊,我明白了,我已经更改了答案-我刚刚将条件转换为==from!=并且变成了&&| |太棒了!!!!谢谢你,伙计!你在这件事上帮了我很多(我想将来还会有更多)很好的一件,很乐意帮忙!记住将问题标记为已解决;-)糟糕的一个如果我使用另一个语言环境(而不是en_US)会发生什么?您应该检查属性名。类似这样的内容:
if($\u filter->getAttributeModel()){$attributeCode=$\u filter->getAttributeModel()->getAttributeCode()}if($attributeCode=='price'.\124;=='$attributeCode=='category'){echo'html'}
感谢您的输入!这段代码只是为我隐藏了过滤器的“价格”和“类别”。我想找到一种只显示这两个过滤器并隐藏所有其他过滤器的方法。啊,我明白了,我已经更改了答案-我刚刚将条件转换为==from!=并且变成了&&| |太棒了!!!!谢谢你,伙计!你在这件事上帮了我很多(我想将来还会有更多)很好的一件,很乐意帮忙!记住将问题标记为已解决;-)糟糕的一个如果我使用另一个语言环境(而不是en_US)会发生什么?您应该检查属性名。类似这样的内容:
if($\u filter->getAttributeModel()){$attributeCode=$\u filter->getAttributeModel()->getAttributeCode()}if($attributeCode=='price'.\124;=='$attributeCode=='category'){echo'html'}
<?php foreach ($_filters as $_filter): ?>
    <?php if (Mage::helper('catalog')->__($_filter->getName()) == 'Price' || Mage::helper('catalog')->__($_filter->getName()) == 'Category'): ?>
            <dt><?php echo Mage::helper('catalog')->__($_filter->getName()) ?></dt>
            <dd><?php echo $_filter->getHtml() ?></dd>
    <?php endif; ?>
<?php endforeach; ?>