You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PrestaShop 1.7获取指定分类新品:修改控制器相关技术咨询

嘿,我来帮你搞定这个需求——让新品列表只展示指定分类下的商品对吧?你已经找对了PrestaShop 1.7里的核心控制器文件NewProductsController.php,接下来只需要给ProductSearchQuery对象添加分类过滤条件就行,具体操作如下:

完整修改方案

修改后的getProductSearchQuery方法

protected function getProductSearchQuery() {
    $query = new ProductSearchQuery();
    // 保留原有新品类型和按添加时间倒序的逻辑
    $query->setQueryType('new-products')
          ->setSortOrder(new SortOrder('product', 'date_add', 'desc'))
          // 添加指定分类过滤,替换数字为你的目标分类ID
          ->setIdCategory(12); // 这里的12是示例分类ID,换成你实际需要的ID
    return $query;
}

关键细节说明

  • 替换分类ID:你需要把setIdCategory()里的数字换成实际的分类ID,这个ID可以在PrestaShop后台的「分类管理」里找到——编辑分类时,URL里的id_category参数就是分类ID。
  • 多分类过滤:如果需要同时展示多个分类下的新品,可以改用setIdCategories()方法,传入分类ID数组:
    ->setIdCategories([12, 15, 20]); // 把这里的数组换成你要包含的分类ID集合
    

重要注意事项

  1. 清理缓存:修改完控制器代码后,一定要去PrestaShop后台的「高级参数→性能」页面清除缓存,否则可能看不到修改后的效果。
  2. 版本更新风险:直接修改核心控制器文件的话,后续PrestaShop版本更新可能会覆盖你的修改。如果需要长期维护,更推荐创建自定义模块,通过actionProductSearchQueryBuilderModifier钩子来修改查询条件,这样更安全。

内容的提问来源于stack exchange,提问作者dkiller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:23:29