1

我试过了:

<option value="<?php echo $this->getOrderUrl('topsellings', 'desc') ?>"<?php if ($this->isOrderCurrent('topsellings') && $this->getCurrentDirection() == 'desc'): ?> selected="selected"<?php endif; ?>>
    Most Popular
</option>

<option value="<?php echo $this->getOrderUrl('special_price', 'desc') ?>"<?php if ($this->isOrderCurrent('special_price') && $this->getCurrentDirection() == 'desc'): ?> selected="selected"<?php endif; ?>>
    On Sale
</option>

但无法得到它。看这里的网站。我错过了什么?

4

2 回答 2

0

如果您设置字段的属性值,used_for_sort_by那么模板应该选择此更改,您不需要更改模板代码。这可以通过设置脚本完成,也可以通过属性管理部分管理部分轻松设置。

getAttributesUsedForSortBy中的函数Mage_Catalog_Model_Config将查找所有将此标志设置为 true 的属性。由于以下原因,默认模板将自动更新。

<?php foreach($this->getAvailableOrders() as $_key=>$_order): ?>
    <option value="<?php echo $this->getOrderUrl($_key, 'asc') ?>"<?php if($this->isOrderCurrent($_key)): ?> selected="selected"<?php endif; ?>>
        <?php echo $this->__($_order) ?>
    </option>
<?php endforeach; ?>
于 2013-11-13T13:12:00.943 回答
0

要添加“自定义”属性,您必须将该属性添加到 toolbar.php 文件的数组中。您可以重新声明它(/app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php)。

 protected function _construct()
    {
        parent::_construct();
        $this->_availableOrder = array(
        'position'  => $this->__('Best Value'),
        'entity_id' => $this->__('Newest'),
        'name'      => $this->__('Name'),
        'price'     => $this->__('Price'),
        'format'    => $this->__('Format'),
        //Custom attribute you have added.
        'release_date'    => $this->__('Release Date')
        ); 

然后您可以通过添加到原始线程海报代码中来调用数组中的属性。

 <option value="<?php echo $this->getOrderUrl('release_date', 'desc') ?>"<?php if($this->isOrderCurrent('release_date') && $this->getCurrentDirection() == 'desc'): ?> selected="selected"<?php endif; ?>>
Release Date
</option> 
于 2013-11-13T12:56:37.070 回答