Php Magento:更改搜索中的排序顺序,更改类别页面排序
我在Magento中找到了几篇关于如何更改搜索结果排序顺序的文章,这些文章大致相当于这篇: 不幸的是,这也导致分类页面上的排序顺序发生了变化。还有别的办法吗?我想让分类页面按照默认的位置进行排序——但让搜索结果按照属性(零件号)进行排序。我希望这是“如果你把代码放到这个模板中,它会工作得更好”之类的东西之一Php Magento:更改搜索中的排序顺序,更改类别页面排序,php,magento,enterprise,Php,Magento,Enterprise,我在Magento中找到了几篇关于如何更改搜索结果排序顺序的文章,这些文章大致相当于这篇: 不幸的是,这也导致分类页面上的排序顺序发生了变化。还有别的办法吗?我想让分类页面按照默认的位置进行排序——但让搜索结果按照属性(零件号)进行排序。我希望这是“如果你把代码放到这个模板中,它会工作得更好”之类的东西之一 我们正在使用Magento Enterprise版本。1.9.0.0.您可以根据需要修改catalogsearch结果集合以进行订购。默认情况下,搜索结果按相关性顺序返回,相关性由搜索词与产
我们正在使用Magento Enterprise版本。1.9.0.0.您可以根据需要修改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)。你为什么不想按相关性顺序显示搜索结果?不要这样做。
更好的布局catalogsearch.xml
加
你想要什么
里面
<block type="catalogsearch/result" name="search.result" template="catalogsearch/result.phtml">
最后
<action method="setListOrders"/>
<action method="setListModes"/>
<action method="setListCollection"/>
这最好在主题的XML文件中完成,如其他几个答案(包括本答案)所述:
<action method="setListOrders"/>
<action method="setListModes"/>
<action method="setListCollection"/>