【问题标题】:How to programmatically get magento category sort order如何以编程方式获取 magento 类别排序顺序
【发布时间】:2012-12-02 11:44:45
【问题描述】:

我正在使用

获得一个类别的集合
foreach(Mage::getModel('catalog/category')->getCollection() as $category)

对于这些类别中的每一个,我都需要检索排序顺序。我该怎么做?

我能找到的唯一在类别类中看起来相关的函数是getDefaultSortBy(),它总是返回news_from_date,它既不是默认排序顺序(位置)也不是选定的排序顺序(价格),所以我不知道它的价值从何而来。我还注意到,如果在 magento 后端更改可用排序顺序的列表,函数 getAvailableSortByOptions 仍然总是返回相同的数组。从这两个事实,我得出结论,类别函数一定是在访问某种跨类别的全局设置,这对我来说没有用。

我想要为每个特定类别选择特定的排序顺序。有没有办法找回这个?还是我需要编写自己的 SQL?那么,我需要查询哪个表?

我正在使用 magento 企业版。 1.11.1.0

【问题讨论】:

    标签: php magento


    【解决方案1】:

    找到了答案。当然,在我发布问题后不久!

    问题是 Mage::getModel('catalog/category')->getCollection() 不会自动加载所有类别属性。您必须指明要手动检索的那些。所以,我需要替换这个:

    foreach(Mage::getModel('catalog/category')->getCollection() as $category)
    

    有了这个:

    foreach(
        Mage::getModel('catalog/category')->getCollection()
        ->addAttributeToSelect('default_sort_by')
        ->addAttributeToSelect('available_sort_by')
        as $category
    )
    

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 2019-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多