我已经尝试过了,它部分有效
http://www.dconstructing.com/2011/04/07/sort-magento-catalog-by-date-added/
但是在具有多个类别的页面上,它将类别排序为第一级,然后才对每个类别中的产品进行排序。
因此,一个类别中较早的产品出现在另一个类别中的较晚产品之前。我不想要那个。我想要一个仅按“位置”(magento 术语)排序的平面排序,而不考虑类别。
我怎样才能做到这一点?
我已经尝试过了,它部分有效
http://www.dconstructing.com/2011/04/07/sort-magento-catalog-by-date-added/
但是在具有多个类别的页面上,它将类别排序为第一级,然后才对每个类别中的产品进行排序。
因此,一个类别中较早的产品出现在另一个类别中的较晚产品之前。我不想要那个。我想要一个仅按“位置”(magento 术语)排序的平面排序,而不考虑类别。
我怎样才能做到这一点?
该说明适用于我的产品分类问题。我使用了第三个Magento 按最新产品排序的解决方案
除了 Guerra 的回答,您可以在 toolbar.phtml 中使用:
<?php if($this->getCurrentDirection() == 'desc') : ?>
<?php $this->addOrderToAvailableOrders('created_at','Newest') ?>
<?php else : ?>
<?php $this->addOrderToAvailableOrders('created_at','Oldest') ?>
<?php endif; ?>
第 1 步:要实现此复制文件Toolbar.php
从app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php
. 在本地创建一个目录结构并粘贴Toolbar.php
如下所示app/code/local/Mage/Catalog/Block/Product/List/Toolbar.php
第 2 步:在第 232 行附近,您应该在setCollection()
函数中看到以下代码
if ($this->getCurrentOrder()) {
$this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());
}
用下面给出的新代码替换上面的代码
if ($this->getCurrentOrder()) {
if(($this->getCurrentOrder())=='position'){
$this->_collection->setOrder('entity_id','desc');
}
else {
$this->_collection->setOrder($this->getCurrentOrder(),$this->getCurrentDirection());
}
}