我之前没有注意到的是Magento会记住你在类别列表页面上选择了哪个选项'排序依据'.因此,如果您转到类别页面,并且假设默认排序按价格排序,则如果您更改要按名称排序的排序,则页面会重新加载,一切都很顺利.
但是,如果您删除URL中的get变量并重新加载页面,它仍然按名称排序,而不是恢复到价格.
我认为这是我正在处理的网站特有的问题,因为有一些自定义的东西正在进行收集构建和排序等等,但我现在检查了一些其他Magento网站(其中一些我发现随意在网上)他们都做同样的事情.
有谁知道这是怎么被"记住"的?这是存储在用户的会话中吗?我认为它是缓存的一部分,但是这个站点仍在开发中,因此禁用了缓存.
这不是什么大不了的事,但看起来确实像个错误.
排序顺序参数存储在会话中.见Mage_Catalog_Block_Product_List_Toolbar::getCurrentOrder方法.您可以通过调用Mage_Catalog_Block_Product_List_Toolbar::disableParamsMemorizing方法或params_memorize_allowed在目录会话中设置来关闭它.我的意思是Mage::getSingleton('catalog/session')->setParamsMemorizeAllowed(true)