我已经尝试了这个并且部分有效
http://www.dconstructing.com/2011/04/07/sort-magento-catalog-by-date-added/
但是在具有多个类别的网页上,它会将类别排序为第一级,然后才会对每个类别中的产品进行排序。
因此,某个类别中的早期产品会出现在另一个类别的后续产品中。我不希望这样。我想要一个平面排序,只按“位置”(magento术语)排序,无论其类别如何。
我怎样才能做到这一点?
答案 0 :(得分:1)
此说明适用于我同样的问题产品排序。我使用了第三个Magento Sort by Newest Products Solution
答案 1 :(得分:0)
除了Guerra的答案,在toolbar.phtml中你可以使用:
<?php if($this->getCurrentDirection() == 'desc') : ?>
<?php $this->addOrderToAvailableOrders('created_at','Newest') ?>
<?php else : ?>
<?php $this->addOrderToAvailableOrders('created_at','Oldest') ?>
<?php endif; ?>
答案 2 :(得分:0)
第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());
}
}