我发现了一些关于如何更改Magento搜索结果排序顺序的文章,大致与此相同:http://www.blog.magepsycho.com/how-to-change-default-sort-order-dir-in-magento-search-results/
不幸的是,这导致排序顺序也在类别页面上发生变化。还有另一种方法吗?我想保留按默认值排序的类别页面,位置 - 但搜索结果按属性,部件号排序。我希望这是其中之一"如果你把它放到这个模板中,代码会更好用#34;类似的东西。
我们正在使用Magento Enterprise ver。 1.9.0.0。
答案 0 :(得分:1)
您可以根据需要修改catalogsearch结果集合。默认情况下,搜索结果按相关性顺序返回,该搜索结果由搜索字词与产品搜索字段的匹配程度决定。
要修改列表顺序,请复制此文件夹;
MAGE ROOT/app/code/core/Mage/CatalogSearch
到这里;
MAGE ROOT/app/code/local/Mage/CatalogSearch
现在打开此文件;
MAGE ROOT/app/code/local/Mage/CatalogSearch/Block/Result.php
在第108行附近,你会发现这个功能;
public function setListOrders()
{
$category = Mage::getSingleton('catalog/layer')
->getCurrentCategory();
/* @var $category Mage_Catalog_Model_Category */
$availableOrders = $category->getAvailableSortByOptions();
unset($availableOrders['position']);
$availableOrders = array_merge(array(
'relevance' => $this->__('Relevance')
), $availableOrders);
$this->getListBlock()
->setAvailableOrders($availableOrders)
->setDefaultDirection('desc')
->setSortBy('relevance');
return $this;
}
您可以将setSortBy(X)修改为您想要的任何内容。为什么你不希望ot显示搜索结果的相关性?
答案 1 :(得分:1)
不要这样做。 更好的布局catalogsearch.xml
添加
<reference name="search_result_list">
<action method="setSortBy"><name>whateveryouwant</name></action>
</reference>
里面
<block type="catalogsearch/result" name="search.result" template="catalogsearch/result.phtml">
在
之后<action method="setListOrders"/>
<action method="setListModes"/>
<action method="setListCollection"/>