我之前没有注意到的是,Magento 会记住您在类别列表页面上选择的“排序依据”选项。因此,如果您转到类别页面,假设默认排序是按价格排序,如果您将排序更改为按名称排序,则页面会重新加载,一切正常。
但是,如果您删除 URL 中的 get 变量并重新加载页面,它仍然按名称排序,而不是恢复为价格。
我认为这是我正在处理的网站特有的问题,因为在集合构建和排序等方面发生了一些自定义的事情,但我现在检查了一些其他 Magento 网站(其中一些)我在网上随机找到的)并且它们都做同样的事情。
有谁知道这是如何被“记住”的?这是否存储在用户的 session 中?我认为这是缓存的一部分,但该网站仍在开发中,因此缓存被禁用。
这没什么大不了的,但它看起来确实像一个错误。
最佳答案
排序顺序参数存储在 session 中。请参阅 Mage_Catalog_Block_Product_List_Toolbar::getCurrentOrder
方法。您可以通过调用 Mage_Catalog_Block_Product_List_Toolbar::disableParamsMemorizing
方法或在目录 session 中设置 params_memorize_allowed
来关闭它。我的意思是 Mage::getSingleton('catalog/session')->setParamsMemorizeAllowed(true)
关于sorting - Magento 'Sort By' - 如何让 Magento 忘记选择了哪个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8621273/