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

如何在PrestaShop产品列表页筛选区获取并显示分类描述?

解决PrestaShop产品列表页筛选区显示分类描述的问题

嘿,我之前做PrestaShop项目时也碰到过一模一样的需求,整理了几个靠谱的方案,帮你搞定:

方案1:通过Override扩展Category类(推荐,符合PrestaShop规范)

PrestaShop不建议直接修改核心文件,所以用**类重写(Override)**给Category类加个获取描述的方法,这样后续升级版本也不会丢失修改:

  1. 在PrestaShop根目录下创建/编辑 override/classes/Category.php 文件
  2. 插入以下代码:
class Category extends CategoryCore
{
    /**
     * 获取指定语言的分类描述,默认取当前站点语言
     * @param int|null $id_lang 语言ID
     * @return string 分类描述(空字符串表示无数据)
     */
    public function getDescription($id_lang = null)
    {
        if ($id_lang === null) {
            $id_lang = Context::getContext()->language->id;
        }
        
        $description = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(
            'SELECT `description` FROM `'._DB_PREFIX_.'category_lang` 
             WHERE `id_category` = '.(int)$this->id.' 
             AND `id_lang` = '.(int)$id_lang
        );
        
        return $description ?: '';
    }
}
  1. 删除 var/cache/class_index.php 文件,让PrestaShop加载我们的重写类
  2. 现在你就能在模板或控制器里直接调用 $category->getDescription() 获取描述了

方案2:在模板/控制器里直接查询数据库(快速临时方案)

如果不想修改类,也可以在产品列表控制器(比如 controllers/front/ProductListingFrontController.php)或者筛选区域的模板里直接查库:

假设你在模板里能拿到分类ID $id_category,可以这么写:

{php}
$id_lang = Context::getContext()->language->id;
$description = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(
    'SELECT `description` FROM `'._DB_PREFIX_.'category_lang` 
     WHERE `id_category` = '.(int)$id_category.' 
     AND `id_lang` = '.(int)$id_lang
);
{/php}
<!-- 输出描述 -->
<p class="category-description">{$description}</p>

方案3:利用PrestaShop内置的多语言加载方法

其实Category类本身有内置的多语言字段加载逻辑,你可以在拿到分类对象后手动触发:

// 假设你已经获取到了$category对象
$id_lang = Context::getContext()->language->id;
$category->loadLanguage($id_lang);
// 现在直接访问属性就能拿到描述
echo $category->description;

注意:如果你的分类对象是通过 Category::getCategories() 这类方法批量获取的,可能需要手动调用 loadLanguage() 来加载对应语言的字段数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:47:05