php - magento - 快速搜索返回所有产品

标签 php magento

从 1.4 升级到 1.5 后,快速搜索返回所有产品。高级搜索工作得很好。我已经清除了缓存并重新索引了所有内容,但仍然没有。有什么想法吗?

搜索也不应用管理员中设置的最小查询长度(即,我可以不输入任何内容,但仍会显示所有内容)。在 LIKE 或 FULLTEXT 搜索之间切换似乎没有任何作用。

我看过这个Magento Search returns All Products但我所有的插件都是最新的(而且我没有任何搜索插件)。

最佳答案

我为此奋斗了好几天,结果是 catalogsearch/layer block 最终调用了搜索引擎并将结果存储在 catalogsearch_results 表中。

搜索结果列表 block 只是对与 catalogsearch_results 表中的 product_id 列(以及 LIKE 或 FULLTEXT 过滤器)连接的产品集合的简单查询。

因此,简而言之,在您的一个布局 XML 文件(或您的 local.xml)中确保您拥有以下代码:

<catalogsearch_result_index>
    <reference name="left">
      <block type="catalogsearch/layer" name="catalogsearch.leftnav" template="catalog/layer/view.phtml"/>
    </reference>
</catalogsearch_result_index>

当然,您可以将它放在任何其他 block 中(不仅仅是 left),但要确保它在 catalogsearch/result block (哪个在 XML 中别名为“search.result”)。

如果您使用 remove 标签删除了图层导航,则必须为 block 使用不同的名称(而不是“catalogsearch.leftnav”)。

如果您甚至需要在搜索结果页面中隐藏它,请在 XML 中引用它,但使用 CSS 隐藏它:

.block-layered-nav {
    display: none;
}

我希望这能帮助其他一些被这种设计模式可憎的东西折磨的可怜的灵魂。

关于php - magento - 快速搜索返回所有产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5185422/

相关文章:

setCurrentStore() 的 Magento 替代品

php - 如何通过选择下拉属性过滤 magento 集合?

javascript - 通过 Ajax 响应获取的字段中的 JS 问题

Magento,填充管理编辑表单上的复选框字段

php - 如何反转 Eloquent Has One 和 Has Many Through (laravel 5.8)?

php - 如果产品具有特定的运输类别,则向 WooCommerce 购物车项目添加自定义文本

json - 扩展 Magento 中的当前 API 以获取 JSON 格式的项目

magento - 在管理屏幕中强制显示客户的公司

php - 如何使用 PHP 显示数据

php - 拆分导入 CSV 到 mysql 数据库受限